Skip to content

Commit 3457df9

Browse files
authored
Fix 'bhead is not a function' for forks (#145)
1 parent 34a038b commit 3457df9

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

src/Control/Monad/Aff.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -372,15 +372,15 @@ var Aff = function () {
372372
break;
373373

374374
case FORK:
375-
status = STEP_BIND;
375+
status = STEP_RESULT;
376376
tmp = Fiber(util, supervisor, step._2);
377377
if (supervisor) {
378378
supervisor.register(tmp);
379379
}
380380
if (step._1) {
381381
tmp.run();
382382
}
383-
step = tmp;
383+
step = util.right(tmp);
384384
break;
385385

386386
case SEQ:

test/Test/Main.purs

+9-1
Original file line numberDiff line numberDiff line change
@@ -634,7 +634,7 @@ test_scheduler_size = assert "scheduler" do
634634
eq 100000 <$> readRef ref
635635

636636
test_lazy eff. TestAff eff Unit
637-
test_lazy = assert "Lazy Aff" do
637+
test_lazy = assert "lazy" do
638638
varA ← makeEmptyVar
639639
varB ← makeEmptyVar
640640
fiberA <- forkAff $ fix \loop -> do
@@ -653,6 +653,13 @@ test_lazy = assert "Lazy Aff" do
653653
putVar 0 varA
654654
eq "done" <$> joinFiber fiberB
655655

656+
test_regression_return_fork eff. TestAff eff Unit
657+
test_regression_return_fork = assert "regression/return-fork" do
658+
bracket
659+
(forkAff (pure unit))
660+
(const (pure unit))
661+
(const (pure true))
662+
656663
main TestEff () Unit
657664
main = do
658665
test_pure
@@ -698,3 +705,4 @@ main = do
698705
-- Turn on if we decide to schedule forks
699706
-- test_scheduler_size
700707
test_parallel_stack
708+
test_regression_return_fork

0 commit comments

Comments
 (0)