Skip to main content

RunnerGuard

Type Alias RunnerGuard 

Source
pub type RunnerGuard = Option<Box<dyn Any>>;
Expand description

A backend-owned resource that must stay alive until the runtime’s event loop has joined.

The shared-library backend returns its loaded libloading::Library here. Since dora-rs/dora#2742 the main loop no longer holds Arrow arrays exported by the operator — outputs are encoded into dora-owned samples on the operator thread (see RuntimeHandle::send_output) — but other values can still carry .so-resident vtables across the channel, most notably an OperatorEvent::Panic payload. Unloading the library while the loop may still hold one dangles those, so crate::main binds the guard for the whole run and drops it last.

It is deliberately opaque (Box<dyn Any>) so dora-runtime-api stays language-neutral — it never needs to name libloading or any other backend-specific type. Backends with nothing to keep alive return None.

Aliased Type§

pub enum RunnerGuard {
    None,
    Some(Box<dyn Any>),
}

Variants§

§1.0.0

None

No value.

§1.0.0

Some(Box<dyn Any>)

Some value of type T.