diff options
author | Simon Marlow <marlowsd@gmail.com> | 2008-11-19 14:37:02 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2008-11-19 14:37:02 +0000 |
commit | b15b4a179922b1d9fe34c33ee15a25d515d56367 (patch) | |
tree | 5059d2738d9c01dc4c52bf22d27d8e18233e9aec /rts/ThreadPaused.c | |
parent | db12b8eaab53788cf29c589beca82511e48249e4 (diff) | |
download | haskell-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.c | 4 |
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; |