Skip to main content

send_frame

Function send_frame 

Source
pub async fn send_frame(state: &DispatchState, op: ClientOp) -> Result<()>
Expand description

Deliver one lifecycle frame, and queue it durably when the link is down.

§6 line 289: a running session reaches its terminal state while the outbound work waits in client.db intents for the flusher.

The frame that could not leave says nothing about the link, so the shared accept gate is left exactly where the runloop put it. A send fails with the link still Ready — the request deadline belongs to the caller, and onlyne_net::conn records that “the silent peer keeps the link up; only this call gave up” — and dropping the flag here latched it: watch_readiness only re-arms accept_new on a readiness transition, so the pull loop stopped draining the role’s inbox for the life of that link while the work sat queued on the server, and the next delivery to arrive found a client that refused new work. The connection’s own state is the flag’s only author (runloop::link).