uatomic: update atomic set/read, use STORE_SHARED/LOAD_SHARED
[urcu.git] / urcu-pointer-static.h
index 0a01f1ffc944550d3c66cdf9b8d5a53c2a5c8225..c0533c9d3281af0f613e7490ce18e67594bf75e4 100644 (file)
@@ -32,7 +32,7 @@
 #include <urcu/compiler.h>
 #include <urcu/arch.h>
 #include <urcu/system.h>
-#include <urcu/arch_uatomic.h>
+#include <urcu/uatomic_arch.h>
 
 /**
  * _rcu_dereference - reads (copy) a RCU-protected pointer to a local variable
                if (!__builtin_constant_p(_new) ||                      \
                    ((_new) != NULL))                                   \
                        wmb();                                          \
-               uatomic_cmpxchg(p, _________pold, _________pnew);       \
+               (likely(URCU_CAS_AVAIL()) ?                             \
+                       (uatomic_cmpxchg(p, _________pold, _________pnew)) : \
+                       (compat_uatomic_cmpxchg(p, _________pold,       \
+                                               _________pnew)))        \
        })
 
 /**
This page took 0.023351 seconds and 4 git commands to generate.