Megatest

Diff
Login

Differences From Artifact [a861c03ed0]:

To Artifact [2dd389ebcc]:


242
243
244
245
246
247
248
249
250
251
252
253
254
255
256

;;======================================================================
;; E X I T   H A N D L I N G
;;======================================================================

(define (std-exit-procedure)
  (set! *time-to-exit* #t)
  (debug:print-info 0 "starting exit process, finalizing databases.")
  (if (debug:debug-mode 18)
      (rmt:print-db-stats))
  (let ((th1 (make-thread (lambda () ;; thread for cleaning up, give it five seconds
			    (let ((run-ids (hash-table-keys *db-local-sync*)))
			      (if (and (not (null? run-ids))
				       (configf:lookup *configdat* "setup" "megatest-db"))
				  (db:multi-db-sync run-ids 'new2old)))







|







242
243
244
245
246
247
248
249
250
251
252
253
254
255
256

;;======================================================================
;; E X I T   H A N D L I N G
;;======================================================================

(define (std-exit-procedure)
  (set! *time-to-exit* #t)
  (debug:print-info 4 "starting exit process, finalizing databases.")
  (if (debug:debug-mode 18)
      (rmt:print-db-stats))
  (let ((th1 (make-thread (lambda () ;; thread for cleaning up, give it five seconds
			    (let ((run-ids (hash-table-keys *db-local-sync*)))
			      (if (and (not (null? run-ids))
				       (configf:lookup *configdat* "setup" "megatest-db"))
				  (db:multi-db-sync run-ids 'new2old)))
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
			    (if *task-db*     (let ((db (cdr *task-db*)))
						(if (sqlite3:database? db)
						    (begin
						      (sqlite3:interrupt! db)
						      (sqlite3:finalize! db #t)
						      (vector-set! *task-db* 0 #f)))))) "Cleanup db exit thread"))
	(th2 (make-thread (lambda ()
			    (debug:print 0 "ERROR: Received ^C, attempting clean exit. Please be patient and wait a few seconds before hitting ^C again.")
			    (thread-sleep! 5) ;; give the clean up few seconds to do it's stuff
			    (debug:print 0 "       Done.")
			    (exit 4))
			  "exit on ^C timer")))
    (thread-start! th2)
    (thread-start! th1)
    (thread-join! th2)))

(define (std-signal-handler signum)
  ;; (signal-mask! signum)
  (debug:print 0 "ERROR: Received signal " signum " exiting promptly")







|


|
|







265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
			    (if *task-db*     (let ((db (cdr *task-db*)))
						(if (sqlite3:database? db)
						    (begin
						      (sqlite3:interrupt! db)
						      (sqlite3:finalize! db #t)
						      (vector-set! *task-db* 0 #f)))))) "Cleanup db exit thread"))
	(th2 (make-thread (lambda ()
			    (debug:print 4 "Attempting clean exit. Please be patient and wait a few seconds...")
			    (thread-sleep! 5) ;; give the clean up few seconds to do it's stuff
			    (debug:print 0 "       Done.")
			    (exit))
			  "clean exit")))
    (thread-start! th2)
    (thread-start! th1)
    (thread-join! th2)))

(define (std-signal-handler signum)
  ;; (signal-mask! signum)
  (debug:print 0 "ERROR: Received signal " signum " exiting promptly")