aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix-data-service/utils.scm65
-rw-r--r--guix-dev.scm2
2 files changed, 33 insertions, 34 deletions
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)