urcu-defer: make call_rcu() energy efficient using futex()
[urcu.git] / urcu-defer-static.h
index a00ced033b6cc44fcf9b9e02d66cfbc54081e705..dd24c61d85d7885d685323757f83c52c2df2f15f 100644 (file)
@@ -125,6 +125,7 @@ struct defer_queue {
 extern struct defer_queue __thread defer_queue;
 
 extern void rcu_defer_barrier_thread(void);
+extern void wake_up_defer(void);
 
 /*
  * not signal-safe.
@@ -183,6 +184,10 @@ static inline void _rcu_defer_queue(void (*fct)(void *p), void *p)
        smp_wmb();      /* Publish new pointer before head */
                        /* Write q[] before head. */
        STORE_SHARED(defer_queue.head, head);
+       /*
+        * Wake-up any waiting defer thread.
+        */
+       wake_up_defer();
 }
 
 #endif /* _URCU_DEFER_STATIC_H */
This page took 0.02293 seconds and 4 git commands to generate.