Documentation Home

Blocks the current thread until all outstanding reclamations registered with calls to jss::rcu_retire or jss::rcu_obj_base::retire have completed.

void rcu_barrier();

Effects:

The set R of relevant reclamations consists of all reclamations registered with invocations ofjss::rcu_retire or jss::rcu_obj_base::retire that happen-before the invocation of jss::rcu_barrier, plus an unspecified selection of additional reclamations registered with invocations ofjss::rcu_retire or jss::rcu_obj_base::retire that do not happen-before this invocation of jss::rcu_barrier, and where this invocation of jss::rcu_barrier does not happen-before those invocations of jss::rcu_retire or jss::rcu_obj_base::retire.

This invocation of jss::rcu_barrier blocks the current thread until all reclamations in R have completed. Those reclamations may be invoked on the thread that calls jss::rcu_barrier.

Throws:

Nothing.

Synchronization:

The completion of any reclamation in R happens-before the return from jss::rcu_barrier

Header

#include <jss/rcu.hpp>

See Also