@@ -93,11 +93,18 @@ ;; http-transport:handle-directory) ;; simple-directory-handler) ;; Setup the web server and a /ctrl interface ;; (vhost-map `(((* any) . ,(lambda (continue) ;; open the db on the first call - (if (not db)(set! db *inmemdb*)) ;; (open-db))) + (let loop () + (if (not db) + (if (not (sqlite3:database? *inmemdb*)) + (begin + (debug:print 0 "WARNING: db not ready yet. Waiting for it to be ready") + (thread-sleep! 5) + (loop))) + (set! db *inmemdb*))) ;; (open-db))) (let* (($ (request-vars source: 'both)) (dat ($ 'dat)) (res #f)) (cond ;; This is the /ctrl path where data is handed to the server and @@ -374,19 +381,19 @@ (let* ((th2 (make-thread (lambda () (http-transport:run (if (args:get-arg "-server") (args:get-arg "-server") "-"))) "Server run")) - (th3 (make-thread http-transport:keep-running "Keep running")) - (th1 (make-thread server:write-queue-handler "write queue"))) + (th3 (make-thread http-transport:keep-running "Keep running"))) +;; (th1 (make-thread server:write-queue-handler "write queue"))) ;; This is were we set up the database connections (set! *db* (open-db)) (set! *inmemdb* (open-in-mem-db)) (db:sync-to *db* *inmemdb*) (thread-start! th2) (thread-start! th3) - (thread-start! th1) + ;; (thread-start! th1) (set! *didsomething* #t) (thread-join! th2)) (debug:print 0 "ERROR: Failed to setup for megatest"))) (exit)))