Skip to main content

WorkStealStats

Struct WorkStealStats 

Source
pub struct WorkStealStats {
    pub donations: i64,
    pub items_taken: i64,
    pub replay_failures: i64,
    pub total_nodes: i64,
    pub queue_lock_wait_nanos: i64,
    pub idle_wait_nanos: i64,
    pub callback_lock_wait_nanos: i64,
}
Expand description

Aggregate work-stealing diagnostics, populated by run_minion_work_steal and run_minion_work_steal_with_options.

donations counts donate() calls that fired (a busy worker handed off a sub-tree). items_taken counts work items popped and replayed by idle workers. replay_failures counts replays that found infeasibility before beginning sub-tree search. total_nodes is the sum of per-worker node counts.

donations == 0 after a run means the donation/replay path was never exercised — typically because the search finished before idle workers reached their wait. Useful for confirming a test instance is large enough to stress the work-stealing protocol.

Contention diagnostics (cumulative across all workers, nanoseconds): queue_lock_wait_nanos is total time spent acquiring the donation queue mutex. idle_wait_nanos is total time blocked inside popOrFinish waiting for a donation — divide by num_threads * wall_time for “fraction of available CPU spent idle”. callback_lock_wait_nanos is total time spent acquiring the per-solution lock; rises with enumeration-heavy SAT runs.

Fields§

§donations: i64§items_taken: i64§replay_failures: i64§total_nodes: i64§queue_lock_wait_nanos: i64§idle_wait_nanos: i64§callback_lock_wait_nanos: i64

Trait Implementations§

Source§

impl Clone for WorkStealStats

Source§

fn clone(&self) -> WorkStealStats

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for WorkStealStats

Source§

impl Debug for WorkStealStats

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for WorkStealStats

Source§

fn default() -> WorkStealStats

Returns the “default value” for a type. Read more
Source§

impl Eq for WorkStealStats

Source§

impl PartialEq for WorkStealStats

Source§

fn eq(&self, other: &WorkStealStats) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for WorkStealStats

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 56 bytes