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

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

Date: Tue, 29 Jan 2013 19:26:12 -0400

To: notmuch@notmuchmail.org

Cc: David Bremner

From: david@tethera.net


From: David Bremner <bremner@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


Thread: