diff options
| author | Gabriel Schneider <[email protected]> | 2026-10-01 17:43:57 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 17:46:21 -0300 |
| commit | 322aff16a2ca0cfd73e1a62234b8904412b30844 (patch) | |
| tree | e61aa1a6a798567fe88b9d87d45b69a42c743dda | |
| parent | 1a33ed7221733b181726c7ad01e4ce190bcf1d05 (diff) | |
| download | pardes-322aff16a2ca0cfd73e1a62234b8904412b30844.tar.gz pardes-322aff16a2ca0cfd73e1a62234b8904412b30844.zip | |
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 <[email protected]>
| -rw-r--r-- | src/9p_io.zig | 5 |
1 files changed, 5 insertions, 0 deletions
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) { |
