X-Git-Url: http://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=urcu.c;h=0ebe4fd796927a7cd2d204cfff75ed746e55dc91;hp=7fdb1a6a675692cf8e25c39bfd6dde1f1e68f82a;hb=0854ccff976f2893a7f04aaa4b48090f423802a5;hpb=23758cc9e9aa85a1ed3864674829d60f3a715353 diff --git a/urcu.c b/urcu.c index 7fdb1a6..0ebe4fd 100644 --- a/urcu.c +++ b/urcu.c @@ -208,7 +208,7 @@ static void wait_gp(void) /* Read reader_gp before read futex */ force_mb_all_threads(); if (uatomic_read(&gp_futex) == -1) - futex(&gp_futex, FUTEX_WAIT, -1, + futex_async(&gp_futex, FUTEX_WAIT, -1, NULL, NULL, 0); } @@ -372,38 +372,6 @@ void rcu_read_unlock(void) _rcu_read_unlock(); } -void *rcu_dereference(void *p) -{ - return _rcu_dereference(p); -} - -void *rcu_assign_pointer_sym(void **p, void *v) -{ - wmb(); - return STORE_SHARED(p, v); -} - -void *rcu_xchg_pointer_sym(void **p, void *v) -{ - wmb(); - return uatomic_xchg(p, v); -} - -void *rcu_cmpxchg_pointer_sym(void **p, void *old, void *_new) -{ - wmb(); - return uatomic_cmpxchg(p, old, _new); -} - -void *rcu_publish_content_sym(void **p, void *v) -{ - void *oldptr; - - oldptr = _rcu_xchg_pointer(p, v); - synchronize_rcu(); - return oldptr; -} - void rcu_register_thread(void) { urcu_reader.tid = pthread_self();