enum RetryBatchAction {
FlushClaimed,
Queued,
BecomeSpawner {
own_seq: u64,
},
}Expand description
What decide_retry_batch_action determined a stale-resume retry
batch’s fate should be (issue #2367; spec §4). Split from
SendAction because the batch’s live-process outcome is not a
direct delivery: the batch goes through the queue under the drain
claim, never through a caller’s own try_send.
Variants§
FlushClaimed
A live, NEWER-generation process is running with no claim held.
The batch was prepended to the queue AND drain_claim was taken
in the same lock acquisition that decided this — the caller must
start the queue flush
(drain_queue_with_claim(.., QueueDrainClaim::RetryFlush)).
Queued
Someone else holds a claim (a spawn in flight, or another flush) — the batch was prepended for that claim-holder’s drain.
BecomeSpawner
Nobody holds a claim and no process is running — this retry
claimed the exclusive spawn right; own_seq is the batch’s first
entry’s seq (see SendAction::BecomeSpawner).
Auto Trait Implementations§
impl Freeze for RetryBatchAction
impl RefUnwindSafe for RetryBatchAction
impl Send for RetryBatchAction
impl Sync for RetryBatchAction
impl Unpin for RetryBatchAction
impl UnsafeUnpin for RetryBatchAction
impl UnwindSafe for RetryBatchAction
Blanket Implementations§
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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