diff options
Diffstat (limited to 'fibers/operations.scm')
| -rw-r--r-- | fibers/operations.scm | 10 |
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 () |
