X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;ds=sidebyside;f=urcu%2Fstatic%2Furcu.h;h=fc707173dddf05d2c61a5780793e3c3efa045a51;hb=de07ab9691f011d2458be8c1239d62aaa6cb6100;hp=c517693ff1cf187982882bf30f412e454ae8d26f;hpb=a5a9f428a238e790d6c97299bc214b5cca815cd7;p=userspace-rcu.git diff --git a/urcu/static/urcu.h b/urcu/static/urcu.h index c517693..fc70717 100644 --- a/urcu/static/urcu.h +++ b/urcu/static/urcu.h @@ -60,19 +60,13 @@ extern "C" { #define RCU_MB #endif +/* + * The ABI of sys_membarrier changed after its original implementation. + * Disable it for now. Use RCU_MB flavor instead. + */ #ifdef RCU_MEMBARRIER -#include - -/* If the headers do not support SYS_membarrier, statically use RCU_MB */ -#ifdef SYS_membarrier -# define MEMBARRIER_EXPEDITED (1 << 0) -# define MEMBARRIER_DELAYED (1 << 1) -# define MEMBARRIER_QUERY (1 << 16) -# define membarrier(...) syscall(SYS_membarrier, __VA_ARGS__) -#else -# undef RCU_MEMBARRIER -# define RCU_MB -#endif +#undef RCU_MEMBARRIER +#define RCU_MB #endif /* @@ -234,8 +228,13 @@ static inline void wake_up_gp(void) { if (caa_unlikely(uatomic_read(&gp_futex) == -1)) { uatomic_set(&gp_futex, 0); - futex_async(&gp_futex, FUTEX_WAKE, 1, - NULL, NULL, 0); + /* + * Ignoring return value until we can make this function + * return something (because urcu_die() is not publicly + * exposed). + */ + (void) futex_async(&gp_futex, FUTEX_WAKE, 1, + NULL, NULL, 0); } }