Skip to main content

Module session_pump

Module session_pump 

Source
Expand description

Phase 3 proxy pump (soldr#2365, slice 2b): drive a child process as a broker-proxied compile session.

run_child_session owns a spawned child with piped stdio and bridges it to a pair of SessionFrame channels: it streams the child’s stdout/stderr out as Stdout/Stderr frames, applies inbound Stdin/StdinEof frames to the child’s stdin, and finishes by sending a terminal Exit frame carrying the child’s exit code (or signal on Unix).

It is deliberately transport-agnostic — it speaks in-memory std::sync::mpsc channels of decoded SessionFrames, not the broker socket. A later Phase 3 slice wraps these channels in the Frame envelope on the SESSION_PAYLOAD_PROTOCOL lane so the same pump runs across the broker. Keeping the byte-transparency logic here — verified against the direct-execution oracle (stdio_fidelity_oracle_test) — means the transport slice only has to prove framing, not fidelity.

Traits§

FrameSink
A sink the pump writes outbound SessionFrames to.
SessionChild
A spawned child the session pump can drive: the three raw stdio pipes plus a blocking wait that yields a SessionExit.

Functions§

run_child_session
Drive child as a proxied session.