test: delay watchdog checks in emacs.
authorDavid Bremner <bremner@debian.org>
Tue, 29 Jan 2013 23:06:37 +0000 (19:06 -0400)
committerDavid Bremner <bremner@debian.org>
Tue, 29 Jan 2013 23:17:07 +0000 (19:17 -0400)
Instead of checking immediately for the watched process, delay a
minute, or in the case that process-attributes returns nil, for two
minutes.  This is intended to cope with the case that
process-attributes is unimplimented, and returns always returns nil.
In this case, the watchdog check is the same as the two minute limit
imposed by timeout.

test/test-lib.el

index dece811e6136064b84afec343161c1e25f5c9dec..d26b49f7551f1cd3bc159e241f64976e5e37db58 100644 (file)
@@ -77,12 +77,19 @@ invisible text."
        (setq start next-pos)))
     str))
 
-(defun orphan-watchdog (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))
-      (kill-emacs)
-    (run-at-time "1 min" nil 'orphan-watchdog 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)))
 
 (defun hook-counter (hook)
   "Count how many times a hook is called.  Increments