X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=urcu-qsbr.c;h=5c6d49bb8fc5faa8f7364c9ce32ee53aed53a0a6;hp=bb98a199d5138664c4f2e03b14ca7a45cde93c98;hb=c96a37267efd57cddf7a30f472f9e56f2ecddddc;hpb=efafc824ca148c6b2ca7f95dc86d2aaa38d4a923 diff --git a/urcu-qsbr.c b/urcu-qsbr.c index bb98a19..5c6d49b 100644 --- a/urcu-qsbr.c +++ b/urcu-qsbr.c @@ -102,7 +102,7 @@ static void wait_gp(void) /* Read reader_gp before read futex */ smp_rmb(); if (uatomic_read(&gp_futex) == -1) - futex(&gp_futex, FUTEX_WAIT, -1, + futex_noasync(&gp_futex, FUTEX_WAIT, -1, NULL, NULL, 0); } @@ -278,38 +278,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_cmpxchg_pointer_sym(void **p, void *old, void *_new) -{ - wmb(); - return uatomic_cmpxchg(p, old, _new); -} - -void *rcu_xchg_pointer_sym(void **p, void *v) -{ - wmb(); - return uatomic_xchg(p, v); -} - -void *rcu_publish_content_sym(void **p, void *v) -{ - void *oldptr; - - oldptr = _rcu_xchg_pointer(p, v); - synchronize_rcu(); - return oldptr; -} - void rcu_quiescent_state(void) { _rcu_quiescent_state();