From 5a2106c65b9b3dacf6d92a434036a76ebafe1efb Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 20 Sep 2016 02:13:07 +0200 Subject: Add support for ,spawn-fiber --- fibers.scm | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'fibers.scm') diff --git a/fibers.scm b/fibers.scm index 0af520a..8548ddb 100644 --- a/fibers.scm +++ b/fibers.scm @@ -53,16 +53,17 @@ (install-suspendable-ports? #t) (keep-scheduler? (eq? scheduler (current-scheduler)))) (when install-suspendable-ports? (install-suspendable-ports!)) - (parameterize ((current-scheduler scheduler) - (current-read-waiter wait-for-readable) - (current-write-waiter wait-for-writable)) - (call-with-values - (lambda () - (run-scheduler scheduler - #:join-fiber (and init (spawn-fiber init scheduler)))) - (lambda vals - (unless keep-scheduler? (destroy-scheduler scheduler)) - (apply values vals))))) + (with-scheduler + scheduler + (parameterize ((current-read-waiter wait-for-readable) + (current-write-waiter wait-for-writable)) + (call-with-values + (lambda () + (run-scheduler scheduler + #:join-fiber (and init (spawn-fiber init scheduler)))) + (lambda vals + (unless keep-scheduler? (destroy-scheduler scheduler)) + (apply values vals)))))) (define (require-current-scheduler) (or (current-scheduler) -- cgit v1.2.3