pub enum AcquireFailure {
NameNotRegistered,
CapTableFull,
Refused,
}Expand description
Why a reacquire_cap_detail failed. The two real cases want OPPOSITE responses, which is the
entire reason this type exists rather than a bool.
NameNotRegistered is transient and expected: peers are acquired before they are spawned at
boot, and again while one is mid-restart. Retry; it heals. CapTableFull is permanent: this
service cannot hold another capability, so it can never reacquire anything again and will not
recover until it is restarted - a failed recovery, which §26.7 says must stay exactly as visible as
the original failure.
Collapsed into one value (as reacquire_cap still does, for callers that only retry) a service can
only print both and commit to neither. That ambiguity cost a full debugging pass on the Pi 2: a
block-driver that was alive the whole time produced the same line as a reader out of cap slots.
Variants§
NameNotRegistered
The name does not resolve right now - no live instance is registered under it. Transient.
CapTableFull
The name resolved, but this service’s own capability table is full. Terminal until restart.
Refused
The request itself was refused (name empty, too long, or not a declared peer).
Implementations§
Trait Implementations§
Source§impl Clone for AcquireFailure
impl Clone for AcquireFailure
Source§fn clone(&self) -> AcquireFailure
fn clone(&self) -> AcquireFailure
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AcquireFailure
impl Debug for AcquireFailure
Source§impl PartialEq for AcquireFailure
impl PartialEq for AcquireFailure
Source§fn eq(&self, other: &AcquireFailure) -> bool
fn eq(&self, other: &AcquireFailure) -> bool
self and other values to be equal, and is used by ==.