internal_urcu_lock();
rcu_add_reader(pthread_self());
internal_urcu_unlock();
+ _rcu_thread_online();
}
void rcu_unregister_thread(void)
{
+ /*
+ * We have to make the thread offline otherwise we end up dealocking
+ * with a waiting writer.
+ */
+ _rcu_thread_offline();
internal_urcu_lock();
rcu_remove_reader(pthread_self());
internal_urcu_unlock();