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."