summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/9p_io.zig5
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) {