pub async fn run_processor(
p: Box<dyn FrameProcessor>,
rx: ProcessorRx,
link: Link,
setup: ProcessorSetup,
)Expand description
The framework-owned per-processor loop. Runs until the input channels close or
a terminal frame (End/Cancel) is forwarded.
PROCESSOR-DESIGN §2.2 pseudocode, made real:
biasedselect drains the system channel first (priority);Startrunsstart()then forwards;Interruptiondrains the normal queue of interruptible frames (keeping uninterruptible ones — End/Stop/FunctionCallResult/UpdateSettings) then forwards;End/Stop/Cancelrunstop(), forward, and (End/Cancel) break;- any other frame goes to
process_frame; anErrbecomes an upstreamError{fatal:false}.