aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2023-11-01 21:14:58 +0000
committerChristopher Baines <mail@cbaines.net>2023-11-01 21:14:58 +0000
commitd7f2691a42457483027b0d9f21e3f282e37c6e0a (patch)
tree95e1c2451e1b372d33020cf64b67aaa61f30d99f
parent3b64124b86a9a9d97696cd777ae3d3eaff66b7df (diff)
downloadqa-frontpage-d7f2691a42457483027b0d9f21e3f282e37c6e0a.tar
qa-frontpage-d7f2691a42457483027b0d9f21e3f282e37c6e0a.tar.gz
Use call-with-blocked-asyncs when calling call-with-zlib-input-port
Since it uses dynamic-wind that's incompatible with fibers.
-rw-r--r--guix-qa-frontpage/guix-data-service.scm11
1 files changed, 7 insertions, 4 deletions
diff --git a/guix-qa-frontpage/guix-data-service.scm b/guix-qa-frontpage/guix-data-service.scm
index 7a01e7f..3565c27 100644
--- a/guix-qa-frontpage/guix-data-service.scm
+++ b/guix-qa-frontpage/guix-data-service.scm
@@ -143,10 +143,13 @@
(let ((json-body
(match (response-content-encoding response)
(('gzip)
- (call-with-zlib-input-port
- body
- json->scm
- #:format 'gzip))
+ ;; Stop fibers from triggering dynamic-wind in (zlib)
+ (call-with-blocked-asyncs
+ (lambda ()
+ (call-with-zlib-input-port
+ body
+ json->scm
+ #:format 'gzip))))
(_
(json->scm body)))))
(if (or (> (response-code response)