summaryrefslogtreecommitdiff
path: root/rts/Schedule.c
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2019-08-04 17:52:41 -0400
committerBen Gamari <ben@smart-cactus.org>2019-10-20 21:15:52 -0400
commit1037341648466158fd55bd1d50e1f81c8cfd1516 (patch)
treefdd6041effe79a7638877cb30436a12322e2f2e6 /rts/Schedule.c
parent4a44ab330285643a6bee6acc6bd47d44118a6def (diff)
downloadhaskell-1037341648466158fd55bd1d50e1f81c8cfd1516.tar.gz
Don't cleanup until we've stopped the collector
This requires that we break nonmovingExit into two pieces since we need to first stop the collector to relinquish any capabilities, then we need to shutdown the scheduler, then we need to free the nonmoving allocators.
Diffstat (limited to 'rts/Schedule.c')
-rw-r--r--rts/Schedule.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/rts/Schedule.c b/rts/Schedule.c
index 8d82daf381..f867d7f359 100644
--- a/rts/Schedule.c
+++ b/rts/Schedule.c
@@ -2714,7 +2714,7 @@ exitScheduler (bool wait_foreign USED_IF_THREADS)
// If we haven't killed all the threads yet, do it now.
if (sched_state < SCHED_SHUTTING_DOWN) {
sched_state = SCHED_INTERRUPTING;
- nonmovingExit();
+ nonmovingStop();
Capability *cap = task->cap;
waitForCapability(&cap,task);
scheduleDoGC(&cap,task,true);