summaryrefslogtreecommitdiff
path: root/fibers/operations.scm
diff options
context:
space:
mode:
Diffstat (limited to 'fibers/operations.scm')
-rw-r--r--fibers/operations.scm10
1 files changed, 6 insertions, 4 deletions
diff --git a/fibers/operations.scm b/fibers/operations.scm
index 0008d3a..ef2969c 100644
--- a/fibers/operations.scm
+++ b/fibers/operations.scm
@@ -165,10 +165,12 @@ the operation cannot complete directly, block until it can complete."
((eq? (current-thread) thread)
(set! k thunk))
(else
- (lock-mutex mutex)
- (set! k thunk)
- (signal-condition-variable condvar)
- (unlock-mutex mutex))))
+ (call-with-blocked-asyncs
+ (lambda ()
+ (lock-mutex mutex)
+ (set! k thunk)
+ (signal-condition-variable condvar)
+ (unlock-mutex mutex))))))
(lock-mutex mutex)
(block #f resume)
(let lp ()