Megatest

Check-in [d54079768e]
Login
Overview
Comment:Tweak to deal with possible race condition in post handling of state/status in managing processes in launch
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | v1.55
Files: files | file ages | folders
SHA1: d54079768ef24b526a65a5bb0427e3aac7cfaa1f
User & Date: mrwellan on 2013-08-05 10:41:58
Other Links: branch diff | manifest | tags
Context
2013-08-05
10:53
Reseting version. check-in: 590333fe8a user: mrwellan tags: v1.55
10:41
Tweak to deal with possible race condition in post handling of state/status in managing processes in launch check-in: d54079768e user: mrwellan tags: v1.55
09:16
Improved auto start server message, bumped other server releated noise to level 2 check-in: 4a5256913c user: matt tags: v1.55
Changes

Modified launch.scm from [3754524a5c] to [7692281ad3].

322
323
324
325
326
327
328

329
330
331
332
333
334
335
				       (loop (calc-minutes)))))))
		 (th1          (make-thread monitorjob))
		 (th2          (make-thread runit)))
	    (set! job-thread th2)
	    (thread-start! th1)
	    (thread-start! th2)
	    (thread-join! th2)

	    (mutex-lock! m)
	    (let* ((item-path (item-list->path itemdat))
		   (testinfo  (cdb:get-test-info-by-id *runremote* test-id))) ;; )) ;; run-id test-name item-path)))
	      ;; Am I completed?
	      (if (equal? (db:test-get-state testinfo) "RUNNING") ;; (not (equal? (db:test-get-state testinfo) "COMPLETED"))
		  (let ((new-state  (if kill-job? "KILLED" "COMPLETED") ;; (if (eq? (vector-ref exit-info 2) 0) ;; exited with "good" status
				                                        ;; "COMPLETED"







>







322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
				       (loop (calc-minutes)))))))
		 (th1          (make-thread monitorjob))
		 (th2          (make-thread runit)))
	    (set! job-thread th2)
	    (thread-start! th1)
	    (thread-start! th2)
	    (thread-join! th2)
	    (thread-sleep! 0.1) ;; give thread th1 a chance to be done TODO: Verify this is needed.
	    (mutex-lock! m)
	    (let* ((item-path (item-list->path itemdat))
		   (testinfo  (cdb:get-test-info-by-id *runremote* test-id))) ;; )) ;; run-id test-name item-path)))
	      ;; Am I completed?
	      (if (equal? (db:test-get-state testinfo) "RUNNING") ;; (not (equal? (db:test-get-state testinfo) "COMPLETED"))
		  (let ((new-state  (if kill-job? "KILLED" "COMPLETED") ;; (if (eq? (vector-ref exit-info 2) 0) ;; exited with "good" status
				                                        ;; "COMPLETED"