Trait RcuDeferContext

Source
pub unsafe trait RcuDeferContext: RcuContext {
    // Required method
    fn rcu_defer<F>(&mut self, callback: Box<F>)
       where F: RcuDefer;
}
Expand description

This trait defines the per-thread RCU defer context.

§Safety

For deferred callbacks (rcu_defer), a barrier (defer_barrier) should be executed before cleaning up the context. Failure to do so might results in memory leaks and object cleanups that don’t happen.

Required Methods§

Source

fn rcu_defer<F>(&mut self, callback: Box<F>)
where F: RcuDefer,

Configures a callback to be called after the next RCU grace period is finished.

§Note

The function might internally call RcuContext::rcu_synchronize and block.

The callback is guaranteed to be executed on the current thread.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<const READ: bool> RcuDeferContext for RcuContextBp<READ, true>

§Safety

defer_rcu barrier is called before cleanups.

Source§

impl<const READ: bool> RcuDeferContext for RcuContextMb<READ, true>

§Safety

defer_rcu barrier is called before cleanups.

Source§

impl<const READ: bool> RcuDeferContext for RcuContextMemb<READ, true>

§Safety

defer_rcu barrier is called before cleanups.

Source§

impl<const READ: bool> RcuDeferContext for RcuContextQsbr<READ, true>

§Safety

defer_rcu barrier is called before cleanups.