pub struct ShutdownHost {
pub timeout: Duration,
pub max_in_flight: usize,
pub rank: Rank,
pub ack: PortRef<usize>,
}Fields§
§timeout: DurationGrace window: send SIGTERM and wait this long before escalating.
max_in_flight: usizeMax number of children to terminate concurrently on this host.
rank: RankThis host’s ordinal within the shutdown cast region, stamped by the
cast layer. The host echoes it back via ack so the caller can tell
exactly which hosts acknowledged shutdown.
ack: PortRef<usize>Direct reply carrying this host’s rank once shutdown work is done.
Intentionally must NOT be split/tree-reduced: ShutdownHost makes each
host exit right after acking, so a tree-reduced ack would stall — the
node that fans in peers’ acks tears down before they arrive. Replying
directly to the caller survives the responders exiting. The caller binds
this port .unsplit() so the cast layer leaves it alone, and collects
one direct reply per host (see HostMeshRef::cast_shutdown).
Trait Implementations§
Source§impl Clone for ShutdownHost
impl Clone for ShutdownHost
Source§fn clone(&self) -> ShutdownHost
fn clone(&self) -> ShutdownHost
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ShutdownHost
impl Debug for ShutdownHost
Source§impl<'de> Deserialize<'de> for ShutdownHost
impl<'de> Deserialize<'de> for ShutdownHost
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Handler<ShutdownHost> for HostAgent
impl Handler<ShutdownHost> for HostAgent
Source§impl Named for ShutdownHost
impl Named for ShutdownHost
Source§fn typename() -> &'static str
fn typename() -> &'static str
Source§fn typehash() -> u64
fn typehash() -> u64
Source§fn typeid() -> TypeId
fn typeid() -> TypeId
Source§impl Serialize for ShutdownHost
impl Serialize for ShutdownHost
impl Accepts<ShutdownHost> for HostAgentwhere
ShutdownHost: RemoteMessage,
impl RemoteHandles<ShutdownHost> for HostAgentwhere
ShutdownHost: RemoteMessage,
Auto Trait Implementations§
impl !Freeze for ShutdownHost
impl RefUnwindSafe for ShutdownHost
impl Send for ShutdownHost
impl Sync for ShutdownHost
impl Unpin for ShutdownHost
impl UnsafeUnpin for ShutdownHost
impl UnwindSafe for ShutdownHost
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].