Add extern "C" to support linking userspace RCU library with C++ applications
[urcu.git] / urcu-qsbr-static.h
index 150bc09bbc8c1779598bf6fdf435284120225aed..72d35957e802c42733ed415d871a9c4aa54a74ac 100644 (file)
 #include <urcu/system.h>
 #include <urcu/uatomic_arch.h>
 #include <urcu/list.h>
+#include <urcu/urcu-futex.h>
 
-#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 */
This page took 0.023565 seconds and 4 git commands to generate.