aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cuirass/base.scm10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/cuirass/base.scm b/src/cuirass/base.scm
index 510b155..aacfb92 100644
--- a/src/cuirass/base.scm
+++ b/src/cuirass/base.scm
@@ -204,6 +204,16 @@ fibers."
((? string? data)
(call-with-input-string data read))))
+(match (resolve-module '(fibers internal) #t #f #:ensure #f)
+ (#f #t) ;Fibers > 1.0.0
+ ((? module? internal) ;Fibers <= 1.0.0
+ ;; Work around <https://github.com/wingo/fibers/issues/19>.
+ ;; This monkey-patching aims to replace EPOLLERR occurrences in
+ ;; 'schedule-fibers-for-fd' with EPOLLERR | EPOLLHUP.
+ (module-define! internal 'EPOLLERR
+ (logior (@ (fibers epoll) EPOLLERR)
+ (@ (fibers epoll) EPOLLHUP)))))
+
(define (evaluate store db spec)
"Evaluate and build package derivations. Return a list of jobs."
(let* ((port (non-blocking-port