summaryrefslogtreecommitdiff
path: root/rts/ThreadPaused.c
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2008-11-19 14:37:02 +0000
committerSimon Marlow <marlowsd@gmail.com>2008-11-19 14:37:02 +0000
commitb15b4a179922b1d9fe34c33ee15a25d515d56367 (patch)
tree5059d2738d9c01dc4c52bf22d27d8e18233e9aec /rts/ThreadPaused.c
parentdb12b8eaab53788cf29c589beca82511e48249e4 (diff)
downloadhaskell-b15b4a179922b1d9fe34c33ee15a25d515d56367.tar.gz
Small refactoring, and add comments
I discovered a new invariant while experimenting (blackholing is not optional when using parallel GC), so documented it.
Diffstat (limited to 'rts/ThreadPaused.c')
-rw-r--r--rts/ThreadPaused.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/rts/ThreadPaused.c b/rts/ThreadPaused.c
index 674d0d9ca3..2a3f355996 100644
--- a/rts/ThreadPaused.c
+++ b/rts/ThreadPaused.c
@@ -195,6 +195,10 @@ threadPaused(Capability *cap, StgTSO *tso)
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;