pub struct NodeSideEffects { /* private fields */ }Expand description
Node-local side-effect channel.
Held as an Arc shared between the Raft apply wrapper (which fires
notifies post-apply) and the daemon’s watcher tasks (which await them
and run the local effect). All methods are cheap and lock-free.
Implementations§
Source§impl NodeSideEffects
impl NodeSideEffects
Sourcepub fn new() -> Arc<Self>
pub fn new() -> Arc<Self>
Construct a fresh Arc<NodeSideEffects> ready to share with the
apply wrapper and watcher tasks.
Sourcepub fn fire_wipe_join_secret(&self)
pub fn fire_wipe_join_secret(&self)
Wake every current waiter on the WipeJoinSecret notify.
If no task is currently awaiting, the fire is dropped on the
floor — the boot-time reconcile in zlayer serve is what
guarantees the wipe eventually happens for a node that wasn’t
awaiting at apply time (e.g. snapshot install before the
watcher spawned).
Sourcepub async fn wait_wipe_join_secret(&self)
pub async fn wait_wipe_join_secret(&self)
Await the next WipeJoinSecret fire. Multiple concurrent
awaiters are all woken when Self::fire_wipe_join_secret
is called.
Trait Implementations§
Source§impl Debug for NodeSideEffects
impl Debug for NodeSideEffects
Source§impl Default for NodeSideEffects
impl Default for NodeSideEffects
Source§fn default() -> NodeSideEffects
fn default() -> NodeSideEffects
Auto Trait Implementations§
impl !Freeze for NodeSideEffects
impl RefUnwindSafe for NodeSideEffects
impl Send for NodeSideEffects
impl Sync for NodeSideEffects
impl Unpin for NodeSideEffects
impl UnsafeUnpin for NodeSideEffects
impl UnwindSafe for NodeSideEffects
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more