diff options
author | Kavon Farvardin <kavon@farvard.in> | 2018-09-23 15:29:37 -0500 |
---|---|---|
committer | Kavon Farvardin <kavon@farvard.in> | 2018-09-23 15:29:37 -0500 |
commit | 84c2ad99582391005b5e873198b15e9e9eb4f78d (patch) | |
tree | caa8c2f2ec7e97fbb4977263c6817c9af5025cf4 /rts/Apply.cmm | |
parent | 8ddb47cfcf5776e9a3c55fd37947c8a95e00fa12 (diff) | |
parent | e68b439fe5de61b9a2ca51af472185c62ccb8b46 (diff) | |
download | haskell-wip/T13904.tar.gz |
update to current master againwip/T13904
Diffstat (limited to 'rts/Apply.cmm')
-rw-r--r-- | rts/Apply.cmm | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/rts/Apply.cmm b/rts/Apply.cmm index ffcd0352a1..40f890d342 100644 --- a/rts/Apply.cmm +++ b/rts/Apply.cmm @@ -537,7 +537,7 @@ now have, │ etc. │ Now consider what happens when TSO 1 runs its duplicate-computation check. -Again, we start walking the stack from the top, where we we find the update +Again, we start walking the stack from the top, where we find the update frame updating THUNK A. We will lock this thunk, replacing it with a BLACKHOLE owned by its TSO. We now have, @@ -679,6 +679,11 @@ for: R1 = StgAP_STACK_fun(ap); + // Because of eager blackholing the closure no longer has correct size so + // threadPaused() can't correctly zero the slop, so we do it here. See #15571 + // and Note [zeroing slop]. + OVERWRITING_CLOSURE_SIZE(ap, BYTES_TO_WDS(SIZEOF_StgThunkHeader) + 2 + Words); + ENTER_R1(); } |