pub enum BlockOnDeadlockKind {
CurrentThreadCertain,
CurrentThreadCertainTimerBacked,
CurrentThreadDeadline,
MultiThreadCooperativeDeadline,
}Expand description
Which self-detected block_on deadlock class fired.
Variants§
CurrentThreadCertain
CurrentThread on a threadless build: the park decision found an empty queue and no pending wake token, and no other thread exists that could ever deliver one – a PROVABLE deadlock, detected unconditionally (not timing-based).
CurrentThreadCertainTimerBacked
Self::CurrentThreadCertain detected while a HOST timer was pending.
The timer does not make the park any less dead on a threadless build:
its host callback (the JS setTimeout relay) can only run on the very
thread that is about to park, so it can never fire while block_on
holds that thread. A distinct kind only so the diagnostic can name the
shape the user actually hit.
CurrentThreadDeadline
Threaded CurrentThread: a block_on park outlived the configured
deadline with zero runtime progress.
MultiThreadCooperativeDeadline
MultiThread: a cooperative pool driver’s re-entrant block_on park
outlived the configured deadline with zero executor progress. The
foreign/napi whole-build park is exempt by design.
Trait Implementations§
Source§impl Clone for BlockOnDeadlockKind
impl Clone for BlockOnDeadlockKind
Source§fn clone(&self) -> BlockOnDeadlockKind
fn clone(&self) -> BlockOnDeadlockKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for BlockOnDeadlockKind
Source§impl Debug for BlockOnDeadlockKind
impl Debug for BlockOnDeadlockKind
impl Eq for BlockOnDeadlockKind
Source§impl PartialEq for BlockOnDeadlockKind
impl PartialEq for BlockOnDeadlockKind
impl StructuralPartialEq for BlockOnDeadlockKind
Auto Trait Implementations§
impl Freeze for BlockOnDeadlockKind
impl RefUnwindSafe for BlockOnDeadlockKind
impl Send for BlockOnDeadlockKind
impl Sync for BlockOnDeadlockKind
impl Unpin for BlockOnDeadlockKind
impl UnsafeUnpin for BlockOnDeadlockKind
impl UnwindSafe for BlockOnDeadlockKind
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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