[PATCH] test/emacs: replace the use of process-attributes with kill(1)

Tomi Ollila tomi.ollila at iki.fi
Sat Jan 11 02:14:37 PST 2014


On Sat, Jan 11 2014, David Bremner <david at tethera.net> wrote:

> 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 at zancas.localnet).
>
> 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 has been pretty portable method long before 2001 :D

You could replace the  call-process with

(signal-process pid 0)

Tomi

>
> I'm not sure if it would be worthwhile, but a point release could
> finally get notmuch compiling on Hurd again.  At least the test in the parent message does pass on Hurd with this patch
>
>  test/test-lib.el | 15 +++++++++------
>  1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/test/test-lib.el b/test/test-lib.el
> index d26b49f..93f5f72 100644
> --- a/test/test-lib.el
> +++ b/test/test-lib.el
> @@ -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
> +   (call-process "kill" nil nil nil "-0" (int-to-string pid))))
> +
>  (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
> -- 
> 1.8.5.2
>
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch


More information about the notmuch mailing list