summaryrefslogtreecommitdiff
path: root/docs/cloud9.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/cloud9.md')
-rw-r--r--docs/cloud9.md11
1 files changed, 11 insertions, 0 deletions
diff --git a/docs/cloud9.md b/docs/cloud9.md
index 79fda717..d030db1d 100644
--- a/docs/cloud9.md
+++ b/docs/cloud9.md
@@ -54,6 +54,17 @@ way a private `ZMX_DIR` does for zmx. Stopping unposts, and only while the
entry is still ours, so a name another editor has since claimed is never
unlinked.
+An exit that cannot run any code of its own — an aborted test, a kill, a
+crash — leaves its entry and its socket behind, so posting first sweeps the
+group: every entry that is a symlink and whose socket answers a connect with
+a definite ECONNREFUSED is unlinked, along with the socket it points at when
+a `stat` agrees that is a socket of ours. Anything that is not a symlink is
+somebody else's, and any other answer — connected, busy, refused permission,
+a surprise — counts as live, because uncertainty belongs to the server that
+owns the socket rather than to the sweeper. That is `cloud9.post.Probe`'s
+classification, repeated in `src/9p_io.zig` only because `post.probe` is raw
+Linux syscalls and pardes also builds for darwin.
+
**Consuming.** Nothing. `9ns --mntgen` mounts the whole registry at
`/mnt/9p`, and an interactive fish already self-wraps in one, so a pardes
started from a terminal sees every posted service as ordinary files —