[PATCH 1/2] test: delay watchdog checks in emacs.

david at tethera.net david at tethera.net
Tue Jan 29 15:26:12 PST 2013


From: David Bremner <bremner at debian.org>

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 |   13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/test/test-lib.el b/test/test-lib.el
index dece811..d26b49f 100644
--- a/test/test-lib.el
+++ b/test/test-lib.el
@@ -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
-- 
1.7.10.4



More information about the notmuch mailing list