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§
- Frame
Sink - A sink the pump writes outbound
SessionFrames to. - Session
Child - 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
childas a proxied session.