mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 17:34:54 +01:00
test/emacs: replace the use of process-attributes with signal-process
In some environments (at least Hurd), process-attributes is unimplimented and always returns nil. This ends up causing test failures (see e.g. id:87a9ffofsc.fsf@zancas.localnet). Historically and according to POSIX 1003.1-2001, a signal of 0 can be used to check the validity of a pid. This seems less heinous than parsing the output of ps(1).
This commit is contained in:
parent
beaf251e16
commit
b4f3be53c8
1 changed files with 9 additions and 6 deletions
|
@ -77,19 +77,22 @@ invisible text."
|
|||
(setq start next-pos)))
|
||||
str))
|
||||
|
||||
;; process-attributes is not defined everywhere, so define an
|
||||
;; alternate way to test if a process still exists.
|
||||
|
||||
(defun test-process-running (pid)
|
||||
(= 0
|
||||
(signal-process pid 0)))
|
||||
|
||||
(defun orphan-watchdog-check (pid)
|
||||
"Periodically check that the process with id PID is still
|
||||
running, quit if it terminated."
|
||||
(if (not (process-attributes pid))
|
||||
(if (not (test-process-running pid))
|
||||
(kill-emacs)))
|
||||
|
||||
(defun orphan-watchdog (pid)
|
||||
"Initiate orphan watchdog check."
|
||||
; If process-attributes returns nil right away, that probably means
|
||||
; it is unimplimented. So we delay two minutes before killing emacs.
|
||||
(if (process-attributes pid)
|
||||
(run-at-time 60 60 'orphan-watchdog-check pid)
|
||||
(run-at-time 120 60 'orphan-watchdog-check pid)))
|
||||
(run-at-time 60 60 'orphan-watchdog-check pid))
|
||||
|
||||
(defun hook-counter (hook)
|
||||
"Count how many times a hook is called. Increments
|
||||
|
|
Loading…
Reference in a new issue