diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-28 10:46:11 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:14 -0300 |
| commit | 73e797e3f31eb52b0074b86cd16949c827b75670 (patch) | |
| tree | a2be3b24014daccf9140b9fc10907d8a42c73f4c /.agents | |
| parent | b03338789f5c9f3619a1ace7fcda842bc073c4dc (diff) | |
| download | pardes-73e797e3f31eb52b0074b86cd16949c827b75670.tar.gz pardes-73e797e3f31eb52b0074b86cd16949c827b75670.zip | |
A lock another open holds fails at once with file in use instead of parking
A contended lock parked until the holder unlocked, but through a kernel
or FUSE mount the kernel serialises writes to one file, so the parked
lock held up the holder's own unlock and close on that ctl, and the two
deadlocked. acme's qlock blocks; here the second lock is refused at once
with file in use (EBUSY) and the client retries, and nothing parks on
the lock any more.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to '.agents')
| -rw-r--r-- | .agents/skills/pardes-9p/SKILL.md | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/.agents/skills/pardes-9p/SKILL.md b/.agents/skills/pardes-9p/SKILL.md index 0207f14c..6fea5838 100644 --- a/.agents/skills/pardes-9p/SKILL.md +++ b/.agents/skills/pardes-9p/SKILL.md @@ -146,7 +146,8 @@ it back evaluates it, and two clients addressing the same pane will interfere. a reserved zero, the dirty flag, the width in cells, the font and the tab width, then `current` or `notcurrent` — and takes `get` (reload from disk), `lock`/`unlock`, and any builtin that acts on a pane (`Del`, `Save f`, -`Collapse`). Session builtins and settings go to the root `ctl`, which reads +`Collapse`). A `lock` another open holds fails at once with `file in use` +(EBUSY): retry it. Session builtins and settings go to the root `ctl`, which reads back every setting in the syntax it takes. A ctl write is checked whole first and refused as `unknown control message "X"` (EINVAL) and the like, a required argument missing included (`wrong #args ... "Mount"`); then a line |
