From f41d1853ceb9f8d297fc756925a08f6d11d30d10 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Thu, 27 Feb 2025 13:23:06 +0000 Subject: [PATCH] Use module-ref for make-base-operation As the implementation of this changed in fibers, and that's causing issues here when mixing the version of fibers used for knots and different versions of fibers. --- knots/timeout.scm | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/knots/timeout.scm b/knots/timeout.scm index 552d079..21c2267 100644 --- a/knots/timeout.scm +++ b/knots/timeout.scm @@ -119,17 +119,19 @@ (define (make-wait-operation ready? schedule-when-ready port port-ready-fd this-procedure) - (make-base-operation #f - (lambda _ - (and (ready? port) values)) - (lambda (flag sched resume) - (define (commit) - (match (atomic-box-compare-and-swap! flag 'W 'S) - ('W (resume values)) - ('C (commit)) - ('S #f))) - (schedule-when-ready - sched (port-ready-fd port) commit)))) + ((module-ref (resolve-interface '(fibers operations)) + 'make-base-operation) + #f + (lambda _ + (and (ready? port) values)) + (lambda (flag sched resume) + (define (commit) + (match (atomic-box-compare-and-swap! flag 'W 'S) + ('W (resume values)) + ('C (commit)) + ('S #f))) + (schedule-when-ready + sched (port-ready-fd port) commit)))) (define (wait-until-port-readable-operation port) "Make an operation that will succeed when PORT is readable."