Skip to main content

Stage

Struct Stage 

Source
pub struct Stage { /* private fields */ }
Expand description

A running stage: the slots, and the one lock every terminal write inside the stage goes through.

Implementations§

Source§

impl Stage

Source

pub fn begin(names: &[&str]) -> Arc<Stage>

A stage over names, in dispatch order. Does nothing visible until checks start entering (the region) or finishing (the blocks).

Source

pub fn enter(self: &Arc<Stage>, idx: usize) -> SinkGuard

Route this thread’s say calls into slot idx until the guard drops. Installed by the dispatcher around each check.run. Also starts the slot’s clock and puts it in the region.

Source

pub fn append_raw(&self, idx: usize, bytes: &[u8])

Append raw bytes (a captured child’s output) to slot idx.

Source

pub fn finish(&self, idx: usize)

The check is over: emit everything it said as ONE contiguous write, with the region lifted out of the way first and repainted after — blocks pile up above, spinners stay below.

Called by the dispatcher after check.run returns (still on the check’s thread, so a torn-down thread cannot strand a buffer — the same catch_unwind that feeds the dead-check outcome runs first).

Trait Implementations§

Source§

impl Drop for Stage

Source§

fn drop(&mut self)

The stage’s end erases whatever the region still shows — a Block verdict, a panic on the dispatcher path, anything: no spinner junk above the roll-up. (get_mut: dropping proves no other thread holds the stage, so the locks are free.)

Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

§

impl !Freeze for Stage

§

impl RefUnwindSafe for Stage

§

impl Send for Stage

§

impl Sync for Stage

§

impl Unpin for Stage

§

impl UnsafeUnpin for Stage

§

impl UnwindSafe for Stage

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> 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.