diff options
author | Ömer Sinan Ağacan <omeragacan@gmail.com> | 2019-02-16 13:52:08 +0300 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2019-02-22 11:26:41 -0500 |
commit | 505feaab820ae1249a126cc455b45fdf01579a75 (patch) | |
tree | 0047d1f210e8e9006f55cec682fd98edd96fdf8a | |
parent | ec2fe95c986fffb3c3f0e3772cb4a7c279ac4804 (diff) | |
download | haskell-505feaab820ae1249a126cc455b45fdf01579a75.tar.gz |
Fix incorrect flush calls
These flush calls cause capabilities to flush their UpdRemSets too
early, then set `upd_rem_set_syncd = true`. This causes NOT syncing
UpdRemSets in nonmovingBeginFlush and losing track of some objects.
Fixes #159 (return_mem_to_os)
-rw-r--r-- | rts/Capability.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/rts/Capability.c b/rts/Capability.c index 5368a64dad..dbe0177ee7 100644 --- a/rts/Capability.c +++ b/rts/Capability.c @@ -522,8 +522,6 @@ releaseCapability_ (Capability* cap, cap->running_task = NULL; - nonmovingFlushCapUpdRemSetBlocks(cap); - // Check to see whether a worker thread can be given // the go-ahead to return the result of an external call.. if (cap->n_returning_tasks != 0) { @@ -885,7 +883,6 @@ yieldCapability (Capability** pCap, Task *task, bool gcAllowed) case SYNC_FLUSH_UPD_REM_SET: debugTrace(DEBUG_nonmoving_gc, "Flushing update remembered set blocks..."); - nonmovingFlushCapUpdRemSetBlocks(cap); break; default: |