X-Git-Url: http://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=urcu-pointer.c;h=61e35da5d718a05dc0f8fad69b0aeb370c7c1d66;hp=1c5f6bdaa1aa1d17fdee34eac7bf6a98c0a82a36;hb=7be759d1adf95b168f09e513232ea26de15e1eaf;hpb=bf9de1b724767a7b0d9f32385ed3ab8623aabb71 diff --git a/urcu-pointer.c b/urcu-pointer.c index 1c5f6bd..61e35da 100644 --- a/urcu-pointer.c +++ b/urcu-pointer.c @@ -4,7 +4,7 @@ * * library wrappers to be used by non-LGPL compatible source code. * - * Copyright (c) 2009 Mathieu Desnoyers + * Copyright (c) 2009 Mathieu Desnoyers * Copyright (c) 2009 Paul E. McKenney, IBM Corporation. * * This library is free software; you can redistribute it and/or @@ -24,9 +24,9 @@ * IBM's contributions to this file may be relicensed under LGPLv2 or later. */ -#include +#include -#include "urcu-pointer-static.h" +#include "urcu/static/urcu-pointer.h" /* Do not #define _LGPL_SOURCE to ensure we can emit the wrapper symbols */ #include "urcu-pointer.h" @@ -39,18 +39,19 @@ void *rcu_dereference_sym(void *p) void *rcu_set_pointer_sym(void **p, void *v) { - wmb(); - return uatomic_set(p, v); + cmm_wmb(); + uatomic_set(p, v); + return v; } void *rcu_xchg_pointer_sym(void **p, void *v) { - wmb(); + cmm_wmb(); return uatomic_xchg(p, v); } void *rcu_cmpxchg_pointer_sym(void **p, void *old, void *_new) { - wmb(); + cmm_wmb(); return uatomic_cmpxchg(p, old, _new); }