Add CMM memory model
[urcu.git] / src / urcu-pointer.c
index bc78c10bd255b12780eb36844c7e6383ef01ed51..a42fe87be47c0feea1549ccc91ba9db685342538 100644 (file)
@@ -24,19 +24,16 @@ void *rcu_dereference_sym(void *p)
 
 void *rcu_set_pointer_sym(void **p, void *v)
 {
-       cmm_wmb();
-       uatomic_set(p, v);
+       uatomic_store(p, v, CMM_RELEASE);
        return v;
 }
 
 void *rcu_xchg_pointer_sym(void **p, void *v)
 {
-       cmm_wmb();
-       return uatomic_xchg(p, v);
+       return uatomic_xchg_mo(p, v, CMM_SEQ_CST);
 }
 
 void *rcu_cmpxchg_pointer_sym(void **p, void *old, void *_new)
 {
-       cmm_wmb();
-       return uatomic_cmpxchg(p, old, _new);
+       return uatomic_cmpxchg_mo(p, old, _new, CMM_SEQ_CST, CMM_RELAXED);
 }
This page took 0.022968 seconds and 4 git commands to generate.