Fix: handle sys_futex() FUTEX_WAIT interrupted by signal
[userspace-rcu.git] / urcu / static / urcu-qsbr.h
index 5580092f4159123f3d948e85b5384b0e58c7a27c..bf97a40c1a9b5345d7110f60b958b63dd0af61f0 100644 (file)
@@ -93,7 +93,7 @@ static inline void debug_yield_write(void)
 
 static inline void debug_yield_init(void)
 {
-       URCU_TLS(rand_yield) = time(NULL) ^ pthread_self();
+       URCU_TLS(rand_yield) = time(NULL) ^ (unsigned long) pthread_self();
 }
 #else
 static inline void debug_yield_read(void)
@@ -144,8 +144,13 @@ static inline void wake_up_gp(void)
                if (uatomic_read(&gp_futex) != -1)
                        return;
                uatomic_set(&gp_futex, 0);
-               futex_noasync(&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_noasync(&gp_futex, FUTEX_WAKE, 1,
+                               NULL, NULL, 0);
        }
 }
 
This page took 0.024638 seconds and 4 git commands to generate.