pub struct Heartbeat {
pub every: Duration,
pub dead: Duration,
pub wedge: Duration,
}Expand description
The socket’s keepalive: how often a connection is asked to prove it is still there, how long it may stay silent before it is reaped, and how long it may go without a completed write before a watchdog outside its future ends it.
The socket carried none, so a peer that vanished without closing - a slept machine, a wedged process, a network that went away - left its viewer attached and any companion waiting, with neither side told the other was gone. A test shortens the set rather than waiting the shipping one out.
The wedge bound is the task’s, not the peer’s. A beat in the
connection’s own select! cannot fire while the connection is parked in
an await, so dead covers a silent peer only while the loop still runs;
wedge covers a loop that stopped running, and it counts completed writes
rather than loop turns because one turn can issue several writes.
Fields§
§every: Duration§dead: Duration§wedge: DurationTrait Implementations§
Auto Trait Implementations§
impl Freeze for Heartbeat
impl RefUnwindSafe for Heartbeat
impl Send for Heartbeat
impl Sync for Heartbeat
impl Unpin for Heartbeat
impl UnsafeUnpin for Heartbeat
impl UnwindSafe for Heartbeat
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§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