Megatest

Diff
Login

Differences From Artifact [e808e7265f]:

To Artifact [228564f2da]:


20
21
22
23
24
25
26
27

28
29
30
31
32
33
34




35
36
37
38
39
40
41
42








43
44
45
46
47
48
49
20
21
22
23
24
25
26

27
28
29
30
31
32
33
34
35
36
37
38








39
40
41
42
43
44
45
46
47
48
49
50
51
52
53







-
+







+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+








;;======================================================================
;; Tasks db
;;======================================================================

;; wait up to aprox n seconds for a journal to go away
;;
(define (tasks:wait-on-journal path n #!key (remove #f))
(define (tasks:wait-on-journal path n #!key (remove #f)(waiting-msg #f))
  (let ((fullpath (conc path "-journal")))
    (handle-exceptions
     exn
     #t ;; if stuff goes wrong just allow it to move on
     (let loop ((journal-exists (file-exists? fullpath))
		(count          n)) ;; wait ten times ...
       (if journal-exists
	   (begin
	     (if (and waiting-msg
		      (eq? (modulo n 30) 0))
		 (debug:print 0 waiting-msg))
	   (if (> count 0)
	       (begin
		 (thread-sleep! 1)
		 (loop (file-exists? fullpath)
		       (- count 1)))
	       (begin
		 (if remove (system (conc "rm -rf " path)))
		 #f))
	     (if (> count 0)
		 (begin
		   (thread-sleep! 1)
		   (loop (file-exists? fullpath)
			 (- count 1)))
		 (begin
		   (if remove (system (conc "rm -rf " fullpath)))
		   #f)))
	   #t)))))

(define (tasks:get-task-db-path)
  (if *task-db*
      (vector-ref *task-db* 1)
      (let* ((linktree     (configf:lookup *configdat* "setup" "linktree"))
	     (dbpath       (conc linktree "/.db/monitor.db")))