summaryrefslogtreecommitdiff
path: root/fibers/timers.scm
diff options
context:
space:
mode:
Diffstat (limited to 'fibers/timers.scm')
-rw-r--r--fibers/timers.scm10
1 files changed, 5 insertions, 5 deletions
diff --git a/fibers/timers.scm b/fibers/timers.scm
index 9c743ae..d2468da 100644
--- a/fibers/timers.scm
+++ b/fibers/timers.scm
@@ -34,13 +34,13 @@ units. The operation will succeed with no values."
(lambda ()
(and (< expiry (get-internal-real-time))
values))
- (lambda (flag fiber wrap-fn)
- (define (get-resume-thunk)
+ (lambda (flag sched resume wrap-fn)
+ (define (timer)
(match (atomic-box-compare-and-swap! flag 'W 'S)
- ('W (or wrap-fn values))
- ('C (get-resume-thunk))
+ ('W (resume (or wrap-fn values)))
+ ('C (timer))
('S #f)))
- (resume-on-timer fiber expiry get-resume-thunk))))
+ (add-timer sched expiry timer))))
(define (wait-operation seconds)
"Make an operation that will succeed with no values when