diff --git a/guix-data-service/utils.scm b/guix-data-service/utils.scm index 0250e42..ed13ef4 100644 --- a/guix-data-service/utils.scm +++ b/guix-data-service/utils.scm @@ -54,39 +54,38 @@ (define* (make-thread-pool-channel #:key (threads 8)) - (parameterize (((@@ (fibers internal) current-fiber) #f)) - (let ((channel (make-channel))) - (for-each - (lambda _ - (call-with-new-thread - (lambda () - (let loop () - (match (get-message channel) - (((? channel? reply) . (? procedure? proc)) - (put-message - reply - (with-exception-handler - (lambda (exn) - (cons 'worker-thread-error exn)) - (lambda () - (with-exception-handler - (lambda (exn) - (simple-format - (current-error-port) - "worker thread: exception: ~A\n" - exn) - (backtrace) - (raise-exception exn)) - (lambda () - (call-with-values - proc - (lambda vals - vals))))) - #:unwind? #t)) - (loop)) - (_ #f)))))) - (iota threads)) - channel))) + (let ((channel (make-channel))) + (for-each + (lambda _ + (call-with-new-thread + (lambda () + (let loop () + (match (get-message channel) + (((? channel? reply) . (? procedure? proc)) + (put-message + reply + (with-exception-handler + (lambda (exn) + (cons 'worker-thread-error exn)) + (lambda () + (with-exception-handler + (lambda (exn) + (simple-format + (current-error-port) + "worker thread: exception: ~A\n" + exn) + (backtrace) + (raise-exception exn)) + (lambda () + (call-with-values + proc + (lambda vals + vals))))) + #:unwind? #t)) + (loop)) + (_ #f)))))) + (iota threads)) + channel)) (define %thread-pool-mutex (make-mutex)) (define %thread-pool-channel #f) diff --git a/guix-dev.scm b/guix-dev.scm index 436140d..394b873 100644 --- a/guix-dev.scm +++ b/guix-dev.scm @@ -51,7 +51,7 @@ ("guile-email" ,guile-email) ("guile-json" ,guile-json-4) ("guile-squee" ,guile-squee) - ("guile-fibers" ,guile-fibers) + ("guile-fibers" ,guile-fibers-1.1) ("guile-gcrypt" ,guile-gcrypt) ("guile-lzlib" ,guile-lzlib) ("guile-readline" ,guile-readline)