diff --git a/main.rkt b/main.rkt index 3e4bccf..75e2269 100644 --- a/main.rkt +++ b/main.rkt @@ -88,15 +88,14 @@ (when (eq? logger-thread #f) (set! logger-thread (thread - (λ () (let loop () - (let* ((v (sync log-queue)) - (level (vector-ref v 0)) + (λ () (let loop ((v (sync log-queue))) + + (let* ((level (vector-ref v 0)) (msg (vector-ref v 1)) (data (vector-ref v 2)) (dt (car data)) (topic (cadr data)) - (lc log-callbacks) - ) + (lc log-callbacks)) (when (string=? msg "@@SYNC@@") (let ((sem (hash-ref sync-sems topic #f))) @@ -107,7 +106,7 @@ (begin (semaphore-post sem) (set! msg (format "Synchronization received on topic ~a" topic)) - (set! level 'info) + (set! level 'debug) ) ))) @@ -136,8 +135,14 @@ lc)) ) ) + ) - (loop)))) + (loop (let ((a (async-channel-try-get log-queue))) + (if (eq? a #f) + (sync log-queue) + a))) + ) + ) #:pool 'own ) )