pub enum PoolEvent {
LaneStarted {
lane: usize,
},
ChunkMerged {
lane: usize,
range: SampleRange,
done: u32,
total_done: u32,
target: u32,
},
ChunkDeferred {
lane: usize,
range: SampleRange,
frontier: u32,
total_done: u32,
deferrals: u32,
},
LaneFailed {
lane: usize,
error: String,
returned: SampleRange,
consecutive_failures: u32,
pause: Option<Duration>,
},
LaneRetired {
lane: usize,
consecutive_failures: u32,
},
LaneRemoved {
lane: usize,
},
LaneFinished {
lane: usize,
chunks: u32,
samples: u32,
},
}Expand description
Something that happened during a LanePool run. lane is the index
LanePool::add_lane returned; LanePool::lane_name names it.
Events are delivered on the lane threads, concurrently, in no global order.
Variants§
LaneStarted
The lane’s thread started claiming work.
ChunkMerged
A chunk’s traced prefix was merged: progress.
Fields
range: SampleRangeThe chunk as claimed.
ChunkDeferred
A finished chunk was refused because the merger’s parked-bytes budget is full and
is being retried once the frontier moves. Sent for a lane’s first deferral at a
frontier and then every 50th, so a stalled frontier is visible. After 1200 in a row
at one frontier the lane fails the chunk instead (PoolEvent::LaneFailed).
Fields
range: SampleRangeThe chunk as claimed.
LaneFailed
A chunk ended short; its untraced tail went back to the cursor.
Fields
returned: SampleRangeThe tail returned to the cursor for any lane.
LaneRetired
The lane failed too often in a row and takes no more work this run.
LaneRemoved
The lane’s resource is gone for good (WorkerLane::lost) and other lanes carry
on: it left the epoch without a backoff or retirement. Whatever chunk it had
in flight is already back on the cursor.
LaneFinished
The lane stopped normally: nothing left to claim, or cancelled.