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: i64Trait Implementations§
Source§impl Clone for WorkStealStats
impl Clone for WorkStealStats
Source§fn clone(&self) -> WorkStealStats
fn clone(&self) -> WorkStealStats
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 WorkStealStats
Source§impl Debug for WorkStealStats
impl Debug for WorkStealStats
Source§impl Default for WorkStealStats
impl Default for WorkStealStats
Source§fn default() -> WorkStealStats
fn default() -> WorkStealStats
impl Eq for WorkStealStats
Source§impl PartialEq for WorkStealStats
impl PartialEq for WorkStealStats
impl StructuralPartialEq for WorkStealStats
Auto Trait Implementations§
impl Freeze for WorkStealStats
impl RefUnwindSafe for WorkStealStats
impl Send for WorkStealStats
impl Sync for WorkStealStats
impl Unpin for WorkStealStats
impl UnsafeUnpin for WorkStealStats
impl UnwindSafe for WorkStealStats
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,
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