From 322aff16a2ca0cfd73e1a62234b8904412b30844 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Thu, 1 Oct 2026 17:43:57 -0300 Subject: A close's held last line runs before the close is answered when no editor step is out, so its err is in the log by then; with a step out it still waits for that step (follows rzxqzosq; monkey9p's one_failure_rule) Co-Authored-By: Claude Opus 5.5 --- src/9p_io.zig | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/9p_io.zig b/src/9p_io.zig index 0b3db274..68f6f6b7 100644 --- a/src/9p_io.zig +++ b/src/9p_io.zig @@ -269,6 +269,11 @@ pub const Listener = struct { const fills = pardes.ctlfs.handsOff(core, req); const reply = core.serveFs(req); if (req.op == .release and quiet) l.collectOs(); + // A close's held last line runs now when no step is out, so its err + // is logged before the close is answered, as before; with a step + // out (perhaps through a mount this close came by) it waits for + // that step, and the close is answered at once all the same. + if (req.op == .release and quiet) pardes.ctlfs.runClosedLines(core); // A read with nothing yet stays parked in the engine, and the core // keeps its ticket to answer it when what it waits on has something. if (reply.status == .again and req.op == .read) { -- cgit v1.3