This commit allows BIND 9 to be compiled with different flavours of Userspace RCU, and improves the integration between Userspace RCU and our event loop: - In the RCU QSBR, the thread is put offline when polling and online when rcu_dereference, rcu_assign_pointer (or friends) are called. - In other RCU modes, we check that we are not reading when reaching the quiescent callback in the event loop. - We register the thread before uv_work_run() callback is called and after it has finished. The rcu_(un)register_thread() has a large overhead, but that's fine in this case.
1.6 KiB
1.6 KiB