summaryrefslogtreecommitdiff
path: root/docs/fs.md
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-20 02:34:12 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:14 -0300
commitfd50bd971d6dea7eaaa4ee5436ba16b95fa25b30 (patch)
tree5c57378525ea774fee7dc3a698a3d4fd9011712b /docs/fs.md
parent2ce8956c8e9843eba7407ab12593871ee451b991 (diff)
downloadpardes-fd50bd971d6dea7eaaa4ee5436ba16b95fa25b30.tar.gz
pardes-fd50bd971d6dea7eaaa4ee5436ba16b95fa25b30.zip
Serve Unix and TCP 9P through cloud9.serve's std.Io runner
The hand-written poll loop for Unix/TCP listeners is replaced by cloud9.serve.Runner; requests are queued to the editor thread, which answers them under the connection lock on each frame and retries parked reads as before. QUIC keeps the poll path (its adapter is fd based). The detached server no longer loses a wake that lands between frames. The firmware path keeps driving the engine with push/step. cloud9 re-pinned. Co-Authored-By: Claude Fable 5.1 <[email protected]>
Diffstat (limited to 'docs/fs.md')
-rw-r--r--docs/fs.md10
1 files changed, 6 insertions, 4 deletions
diff --git a/docs/fs.md b/docs/fs.md
index a9293393..55ffdc9c 100644
--- a/docs/fs.md
+++ b/docs/fs.md
@@ -40,8 +40,9 @@ IPv4/IPv6 addresses, not DNS names. Listener port zero chooses a free port;
All connections have session access, including `os`. TCP is unencrypted.
QUIC uses an ephemeral TLS identity without peer verification or login.
It carries 9P2000 on one bidirectional stream with ALPN `pardes-9p`.
-The four application connection slots are shared across transports;
-OpenSSL's internal buffers are separate, dynamically allocated memory.
+Unix and TCP connections share four slots served by cloud9's `std.Io`
+runner; QUIC has four of its own on the editor's poll loop. OpenSSL's
+internal buffers are separate, dynamically allocated memory.
[Plan9port's client](https://9fans.github.io/plan9port/man/man1/9p.html) can
drive Unix or TCP without a kernel mount, and `9ns` mounts the tree in a
@@ -141,8 +142,9 @@ and the editor's reply payload over cloud9's backend contract), `pane.zig`
(pane files), `ctl.zig`, `addr.zig`, `pty.zig`, `events.zig` (event and log
streams), `screen.zig` and `sources.zig`. The protocol engine is cloud9's
`fs.Server`, configured in `src/9p.zig` (the editor's and the board's
-capacities); the transports are `src/9p_io.zig`; `src/fs.zig` keeps host
-access, mounts, resolution, find and grep.
+capacities); the transports are `src/9p_io.zig` (cloud9's `serve.Runner`
+for Unix and TCP, a poll loop for QUIC, and the 9P client for mounts);
+`src/fs.zig` keeps host access, mounts, resolution, find and grep.
`zig build fs-test` drives real sessions using the independent Python client
in `test/ninep.py`; `zig build fs-discovery-test` checks that browsing creates