diff options
author | simonmar <unknown> | 2005-11-25 14:33:12 +0000 |
---|---|---|
committer | simonmar <unknown> | 2005-11-25 14:33:12 +0000 |
commit | db18148d1a62abc745da955530d7f46a6f1e9f36 (patch) | |
tree | 895b9f8ec1c5fedacf6da943dfbac562c730d404 | |
parent | c282a8106fc20dcd96025f7aca52fb69cd0ac670 (diff) | |
download | haskell-db18148d1a62abc745da955530d7f46a6f1e9f36.tar.gz |
[project @ 2005-11-25 14:33:12 by simonmar]
We must empty the suspended_ccalling_tasks and the returning_task list
when forking.
-rw-r--r-- | ghc/rts/Schedule.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ghc/rts/Schedule.c b/ghc/rts/Schedule.c index 8fe711acb3..d1a6a55231 100644 --- a/ghc/rts/Schedule.c +++ b/ghc/rts/Schedule.c @@ -2088,9 +2088,13 @@ forkProcess(HsStablePtr *entry } RELEASE_LOCK(&sched_mutex); + cap->suspended_ccalling_tasks = NULL; + #if defined(THREADED_RTS) // wipe our spare workers list. cap->spare_workers = NULL; + cap->returning_tasks_hd = NULL; + cap->returning_tasks_tl = NULL; #endif cap = rts_evalStableIO(cap, entry, NULL); // run the action |