Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
{
}
+/*
+ * Q.S. reporting are no-ops for these URCU flavors.
+ */
+static inline void rcu_quiescent_state(void)
+{
+}
+
+static inline void rcu_thread_offline(void)
+{
+}
+
+static inline void rcu_thread_online(void)
+{
+}
+
#ifdef __cplusplus
}
#endif
exit(-1);
}
+ /*
+ * If callbacks take a read-side lock, we need to be registered.
+ */
+ rcu_register_thread();
+
thread_call_rcu_data = crdp;
if (!rt) {
uatomic_dec(&crdp->futex);
}
if (uatomic_read(&crdp->flags) & URCU_CALL_RCU_STOP)
break;
+ rcu_thread_offline();
if (!rt) {
if (&crdp->cbs.head
== _CMM_LOAD_SHARED(crdp->cbs.tail)) {
} else {
poll(NULL, 0, 10);
}
+ rcu_thread_online();
}
if (!rt) {
/*
uatomic_set(&crdp->futex, 0);
}
uatomic_or(&crdp->flags, URCU_CALL_RCU_STOPPED);
+ rcu_unregister_thread();
return NULL;
}
*/
extern void rcu_init(void);
+/*
+ * Q.S. reporting are no-ops for these URCU flavors.
+ */
+static inline void rcu_quiescent_state(void)
+{
+}
+
+static inline void rcu_thread_offline(void)
+{
+}
+
+static inline void rcu_thread_online(void)
+{
+}
+
#ifdef __cplusplus
}
#endif