pub struct ExecHost<B: Backends> {
pub b: B,
pub canonical: Canonical,
pub protect: Protect,
pub ctx: Arc<Mutex<Context>>,
}Fields§
§b: B§canonical: Canonical§protect: Protect§ctx: Arc<Mutex<Context>>Baselines for the probe runs’ state assembly.
Implementations§
Source§impl<B: Backends> ExecHost<B>
impl<B: Backends> ExecHost<B>
pub fn new(b: B, canonical: Canonical) -> Self
fn ctx(&self) -> Context
fn settle(&self, settle: &Settle)
Sourcefn observe(&self, manifest: &Manifest) -> (SystemState, UnitDefs)
fn observe(&self, manifest: &Manifest) -> (SystemState, UnitDefs)
Observe once with a fresh assembler over manifest (every probe due).
Sourcefn violations(
&self,
txn: &Transaction,
phase: CheckPhase,
s: &SystemState,
defs: &UnitDefs,
) -> Vec<String>
fn violations( &self, txn: &Transaction, phase: CheckPhase, s: &SystemState, defs: &UnitDefs, ) -> Vec<String>
The requirements a check enforces; returns what failed.
Trait Implementations§
Source§impl<B: Backends> Host for ExecHost<B>
impl<B: Backends> Host for ExecHost<B>
type Gen = <B as Backends>::Gens
type Inv = <B as Backends>::Inv
Source§fn floor_fixes(
&self,
txn: &Transaction,
floor: Option<GenerationId>,
) -> Result<Vec<String>, Outcome>
fn floor_fixes( &self, txn: &Transaction, floor: Option<GenerationId>, ) -> Result<Vec<String>, Outcome>
§12e, I25: the security fixes
txn’s candidate brings, absent from
the floor generation and every generation between it and the
candidate (every earlier one, with no floor). Part of the commit:
an error here means the transaction does not commit yet.fn generations(&self) -> &B::Gens
fn inventory(&self) -> &B::Inv
Source§fn execute_runtime(&self, t: &Transition, op: &OpId) -> Outcome
fn execute_runtime(&self, t: &Transition, op: &OpId) -> Outcome
Perform a
ReobserveOnly transition’s backend effect (restart, stop,
runtime option, GC). Override bookkeeping is the kernel’s job, not this.Source§fn reobserve(&self, txn: &Transaction) -> Outcome
fn reobserve(&self, txn: &Transaction) -> Outcome
Settle, then observe and compare against the expectation; the outcome is
recorded, never acted on (§12 step 7, UnitOp).
Source§fn check(&self, txn: &Transaction, phase: CheckPhase) -> Verdict
fn check(&self, txn: &Transaction, phase: CheckPhase) -> Verdict
Run the applicable Readiness probes from the candidate’s UnitDefs and the
installed core, plus the expectation and executor-owned requirements.
Source§fn release_gc_root(&self, path: &str) -> bool
fn release_gc_root(&self, path: &str) -> bool
Remove a GC root (I3). Returns false if it could not be removed.
fn now(&self) -> Timestamp
Source§fn boot_now(&self) -> Timestamp
fn boot_now(&self) -> Timestamp
The boot clock (
CLOCK_BOOTTIME): leases, deadlines and waits (§12h).fn sleep(&self, d: Millis)
Source§fn kill_worker(&self, pid: u32) -> bool
fn kill_worker(&self, pid: u32) -> bool
SIGTERM then SIGKILL the process group via pidfd; true once confirmed dead.
fn pid_alive(&self, pid: u32) -> bool
Auto Trait Implementations§
impl<B> Freeze for ExecHost<B>where
B: Freeze,
impl<B> RefUnwindSafe for ExecHost<B>where
B: RefUnwindSafe,
impl<B> Send for ExecHost<B>where
B: Send,
impl<B> Sync for ExecHost<B>where
B: Sync,
impl<B> Unpin for ExecHost<B>where
B: Unpin,
impl<B> UnsafeUnpin for ExecHost<B>where
B: UnsafeUnpin,
impl<B> UnwindSafe for ExecHost<B>where
B: UnwindSafe,
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
Mutably borrows from an owned value. Read more