pub enum RuntimeRequest {
Spawn {
callable: Value,
continuation: Box<dyn NativeContinuation>,
},
CancelPromise {
promise: PromiseId,
continuation: Box<dyn NativeContinuation>,
},
CreateChannel {
capacity: usize,
continuation: Box<dyn NativeContinuation>,
},
ChannelOp {
channel: ChannelId,
operation: ChannelOperation,
continuation: Box<dyn NativeContinuation>,
},
CreateSettledPromise {
outcome: TaskOutcome,
continuation: Box<dyn NativeContinuation>,
},
InspectPromise {
promise: PromiseId,
continuation: Box<dyn NativeContinuation>,
},
PromiseSetWait {
wait: PromiseSetWait,
continuation: Box<dyn NativeContinuation>,
},
OriginBarrier {
continuation: Box<dyn NativeContinuation>,
},
CreateResourceGate {
continuation: Box<dyn NativeContinuation>,
},
ReleaseResourceGate {
gate: ResourceGateId,
continuation: Box<dyn NativeContinuation>,
},
CloseResourceGate {
gate: ResourceGateId,
continuation: Box<dyn NativeContinuation>,
},
}Variants§
Spawn
CancelPromise
CreateChannel
ChannelOp
CreateSettledPromise
InspectPromise
PromiseSetWait
OriginBarrier
Fields
continuation: Box<dyn NativeContinuation>CreateResourceGate
Allocate a fresh ResourceGateId — a per-handle mutual-exclusion slot
with a FIFO waiter queue. A checkout-style stdlib module (sqlite, kv,
proc, pty, serial, stream) creates one gate per resource handle when the
handle is opened, then acquires it via WaitKind::ResourceSlot before
each offloaded op and releases it via RuntimeRequest::ReleaseResourceGate
when the op completes. The continuation receives RuntimeResponse::ResourceGate.
Fields
continuation: Box<dyn NativeContinuation>ReleaseResourceGate
Release ownership of a previously-acquired resource gate, waking the FIFO
head waiter (if any) so exactly one queued acquirer proceeds. The
continuation resumes with RuntimeResponse::Value(nil).
CloseResourceGate
Close a resource gate: fail every parked waiter with a structured “gate closed” error and drop the gate record. Used when a handle is closed/tombstoned so queued acquirers fail fast rather than hang.