projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
SPARC NCG: Add a comment explaining why we can't used a pinned reg for gct
[ghc-hetmet.git]
/
rts
/
ThreadPaused.c
diff --git
a/rts/ThreadPaused.c
b/rts/ThreadPaused.c
index
674d0d9
..
4882ab2
100644
(file)
--- a/
rts/ThreadPaused.c
+++ b/
rts/ThreadPaused.c
@@
-74,7
+74,7
@@
stackSqueeze(StgTSO *tso, StgPtr bottom)
* screw us up if we don't check.
*/
if (upd->updatee != updatee && !closure_IND(upd->updatee)) {
* screw us up if we don't check.
*/
if (upd->updatee != updatee && !closure_IND(upd->updatee)) {
- UPD_IND_NOLOCK(upd->updatee, updatee);
+ UPD_IND(upd->updatee, updatee);
}
// now mark this update frame as a stack gap. The gap
}
// now mark this update frame as a stack gap. The gap
@@
-195,6
+195,10
@@
threadPaused(Capability *cap, StgTSO *tso)
maybePerformBlockedException (cap, tso);
if (tso->what_next == ThreadKilled) { return; }
maybePerformBlockedException (cap, tso);
if (tso->what_next == ThreadKilled) { return; }
+ // NB. Blackholing is *not* optional, we must either do lazy
+ // blackholing, or eager blackholing consistently. See Note
+ // [upd-black-hole] in sm/Scav.c.
+
stack_end = &tso->stack[tso->stack_size];
frame = (StgClosure *)tso->sp;
stack_end = &tso->stack[tso->stack_size];
frame = (StgClosure *)tso->sp;