summaryrefslogtreecommitdiff
path: root/src/9p_io.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/9p_io.zig')
-rw-r--r--src/9p_io.zig13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/9p_io.zig b/src/9p_io.zig
index ea3f799c..a4340ddf 100644
--- a/src/9p_io.zig
+++ b/src/9p_io.zig
@@ -317,7 +317,20 @@ pub const Listener = struct {
if (core.effects_len != 0) pardes.turn.awaitSettled(epoch);
if (core.fs.lsp_answer_at) |n| {
core.fs.lsp_answer_at = null;
+ core.fs.lsp_result = null;
pardes.turn.awaitLsp(n);
+ // The answer filled a pane (a Rename's preview): that is what
+ // this write's open reads back, as look and exec answer.
+ if (l.core == core) if (core.fs.lsp_result) |serial| {
+ core.fs.lsp_result = null;
+ core.fs.results[0] = serial;
+ core.fs.results_len = 1;
+ if (pardes.ctlfs.openOf(core, req)) |o| {
+ o.results.list[0] = serial;
+ o.results.len = 1;
+ o.results.read = 0;
+ }
+ };
}
core.fs.write_waits = false;
// ponytail: one slot, so a failure of another client's effects that