summaryrefslogtreecommitdiff
path: root/install.sh
diff options
context:
space:
mode:
authorIgor Soarez <igor@soarez.org>2026-10-30 18:36:08 +0200
committerIgor Soarez <igor@soarez.org>2026-10-30 18:42:18 +0200
commit6c7059865a615cf27226fa09562e6f1deb9beccb (patch)
tree48cfcb80c16d59d13b9a75183c8d6eab477cf92c /install.sh
parentb3448031088447d76d80ac6b2bfa08320973a2d9 (diff)
pi alarm: keep pending alarms across /reload
/reload dropped every pending alarm and stopped its when_done command, without a word. An agent that had ended its turn to wait for one was never woken -- nor a pi-goal goal_wait counting on it. The old copy of the extension now leaves what is pending on globalThis instead: each alarm as plain data, the due queue, the next id, and a when_done command's ChildProcess with its own listeners removed. The copy pi loads next arms fresh timers from each alarm's absolute time, listens on the command again (one that exited meanwhile still holds its status), and resumes polling PIDs. Nothing crosses that would reach the old, stale pi or ctx. A handoff from another session or another HANDOFF_VERSION is refused and its commands stopped, with a notice. If nothing takes it within 30s -- the file failed to load, or was removed -- the old copy stops its commands. Quitting, /new, /resume and /fork still drop everything.
Diffstat (limited to 'install.sh')
0 files changed, 0 insertions, 0 deletions