summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2017-02-12 18:13:44 +0100
committerAndy Wingo <wingo@pobox.com>2017-02-12 18:13:44 +0100
commit11c079b67599e3ee1841ff5376d4a52e7a657c8d (patch)
tree594ab765add272b805f6da65c36a2077a364fd06
parentAdd concurrent web server (diff)
downloadguile-fibers-11c079b67599e3ee1841ff5376d4a52e7a657c8d.tar.gz
Cope with migration of initial fiber
* fibers.scm (run-fibers): Allow migration of main fiber.
-rw-r--r--fibers.scm5
1 files changed, 4 insertions, 1 deletions
diff --git a/fibers.scm b/fibers.scm
index 1e8d0ec..8ae1d92 100644
--- a/fibers.scm
+++ b/fibers.scm
@@ -114,7 +114,10 @@
(error "run-fibers requires initial fiber thunk when creating sched"))
(spawn-fiber (lambda ()
(call-with-values init
- (lambda vals (atomic-box-set! ret vals))))
+ (lambda vals (atomic-box-set! ret vals)))
+ ;; Could be that this fiber was migrated away.
+ ;; Make sure to wake up the main scheduler.
+ (spawn-fiber (lambda () #t) scheduler))
scheduler)
(match affinities
((affinity . affinities)