diff options
author | Ben Gamari <ben@smart-cactus.org> | 2019-08-04 17:52:41 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2019-10-20 21:15:52 -0400 |
commit | 1037341648466158fd55bd1d50e1f81c8cfd1516 (patch) | |
tree | fdd6041effe79a7638877cb30436a12322e2f2e6 /rts/Schedule.c | |
parent | 4a44ab330285643a6bee6acc6bd47d44118a6def (diff) | |
download | haskell-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.c | 2 |
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); |