X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=urcu-qsbr-static.h;h=72d35957e802c42733ed415d871a9c4aa54a74ac;hp=150bc09bbc8c1779598bf6fdf435284120225aed;hb=36bc70a84250927ba68d5096a0a9740aec157f9b;hpb=48d848c7291ec22da6258ac03cd9c1dafec1fdfb diff --git a/urcu-qsbr-static.h b/urcu-qsbr-static.h index 150bc09..72d3595 100644 --- a/urcu-qsbr-static.h +++ b/urcu-qsbr-static.h @@ -41,10 +41,11 @@ #include #include #include +#include -#define futex(...) syscall(__NR_futex, __VA_ARGS__) -#define FUTEX_WAIT 0 -#define FUTEX_WAKE 1 +#ifdef __cplusplus +extern "C" { +#endif /* * This code section can only be included in LGPL 2.1 compatible source code. @@ -154,7 +155,7 @@ static inline void wake_up_gp(void) { if (unlikely(uatomic_read(&gp_futex) == -1)) { uatomic_set(&gp_futex, 0); - futex(&gp_futex, FUTEX_WAKE, 1, + futex_noasync(&gp_futex, FUTEX_WAKE, 1, NULL, NULL, 0); } } @@ -213,4 +214,8 @@ static inline void _rcu_thread_online(void) smp_mb(); } +#ifdef __cplusplus +} +#endif + #endif /* _URCU_QSBR_STATIC_H */