summaryrefslogtreecommitdiff
path: root/docs/cloud9.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/cloud9.md')
-rw-r--r--docs/cloud9.md13
1 files changed, 8 insertions, 5 deletions
diff --git a/docs/cloud9.md b/docs/cloud9.md
index d030db1d..6eb76238 100644
--- a/docs/cloud9.md
+++ b/docs/cloud9.md
@@ -16,11 +16,14 @@ Mounting, Unix namespace discovery and permissions, the editor event loop,
connection limits, and exported tree policy remain here. The Unix and TCP
listeners run on cloud9's `serve.Runner` (`std.Io`: an accept task per
listener, a reader and a writer task per connection, four slots); its handler
-queues every backend request for the editor's thread, which answers them all
-in `Listener.tick` after each editor update, retries parked reads there, and
-has the runner ship the replies. `src/9p_quic.zig` selects the existing
-`pardes-9p` ALPN for cloud9's optional OpenSSL transport; QUIC still runs on
-the poll loop in `src/9p_io.zig`, since cloud9's QUIC adapter is
+answers every backend request on the connection's task, taking the editor's
+turn with the core (`pardes.turn`) while the editor waits for input or is out
+in a syscall. A request that would change a pane while the editor is mid-step
+is parked with `Status.again` -- the engine parks reads, writes, opens,
+truncations, clunks and removes -- and retried by `Runner.wakeAll` when the
+editor next rests. `src/9p_quic.zig` selects the existing `pardes-9p` ALPN for
+cloud9's optional OpenSSL transport; QUIC still runs on the poll loop in
+`src/9p_io.zig` on the editor's thread, since cloud9's QUIC adapter is
nonblocking-descriptor based rather than `std.Io` based.
The standalone protocol/GPIO tests import the same module. The separate
`05-zig-p4` build also supplies cloud9 for the GPIO firmware entry.