Skip to content

Fixes for liburcu-qsbr

Tony Finch requested to merge fanf-urcu-qsbr-build into main

Move registration and deregistration of the main thread from isc_loopmgr_run() into isc__initialize() / isc__shutdown(): liburcu-qsbr fails an assertion if we try to use it from an unregistered thread, and we need to be able to use it when the event loops are not running.

Use rcu_assign_pointer() and rcu_dereference() in qp-trie transactions so that they properly mark threads as online.

Fix the definition of isc_qsbr_rcu_dereference() to return the referenced value, and to call the right function inside liburcu.

Change the thread sanitizer suppressions to match any variant of rcu_*_barrier()

Closes #4067 (closed)

Merge request reports