Switch to guile-fibers@1.1

I think the main change required is just to stop accessing the now missing
current-fiber parameter.
This commit is contained in:
Christopher Baines 2022-02-09 17:20:54 +00:00
parent 8ed53099ba
commit 4a1088c216
2 changed files with 33 additions and 34 deletions

View File

@ -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)

View File

@ -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)