X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=urcu.c;h=0ebe4fd796927a7cd2d204cfff75ed746e55dc91;hp=c13ad634e7cb7b98f24d8c9a5a756eb26487bf7b;hb=b46b23cb9949c585ddf8ccb691458c8c7c60c7ad;hpb=efafc824ca148c6b2ca7f95dc86d2aaa38d4a923 diff --git a/urcu.c b/urcu.c index c13ad63..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();