diff --git a/.gitignore b/.gitignore index e230db6..b50d4a3 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ roms/ __pycache__/ *.pyc *.dlx +a.out diff --git a/docs/STATUS.md b/docs/STATUS.md index a3e7f03..a52eefa 100644 --- a/docs/STATUS.md +++ b/docs/STATUS.md @@ -117,6 +117,15 @@ notifier subscription in a global; the stack register is `SP` not `A7`; - piping MAME (or any long job) through `grep` block-buffers — write to a file. - `pkill -f ` matches your own shell and kills it (exit 144). Use `pkill -x` or kill by PID. +- **`until ! pgrep -f foo.py; do sleep; done` watcher loops never exit.** The + watching shell's own command line contains the string `foo.py`, so `pgrep -f` + matches the watcher itself and the loop spins forever. Session 2 left 11 of + these wedged for over an hour. Wait on the PID (`while kill -0 $PID`) or on a + sentinel file the job touches when it finishes -- never on a `-f` name match. +- **`timeout N mame ...` does not kill MAME.** MAME catches SIGTERM and, with an + autoboot script blocked waiting on a flag that never arrives, never reaches + its shutdown path. `timeout` without `-k` then waits forever while MAME burns + a full core at `-nothrottle`. Always `timeout -k 5 N`. ---