summaryrefslogtreecommitdiff
path: root/rts/ThreadPaused.c
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2015-07-07 08:52:53 +0100
committerSimon Marlow <marlowsd@gmail.com>2015-07-07 15:07:49 +0100
commitebfc2fb884764eae65df4c5da68d2ad5aaa7b95a (patch)
tree65cc7d641a755983be26aec002d12cb65f51f654 /rts/ThreadPaused.c
parent62fcf0515112b918152dd8bf053f84d9ec0d1501 (diff)
downloadhaskell-ebfc2fb884764eae65df4c5da68d2ad5aaa7b95a.tar.gz
Update comments around blackholes
Test Plan: validate Reviewers: austin, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1047
Diffstat (limited to 'rts/ThreadPaused.c')
-rw-r--r--rts/ThreadPaused.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/rts/ThreadPaused.c b/rts/ThreadPaused.c
index 15339c40c7..1f1d0afe58 100644
--- a/rts/ThreadPaused.c
+++ b/rts/ThreadPaused.c
@@ -211,9 +211,8 @@ threadPaused(Capability *cap, StgTSO *tso)
maybePerformBlockedException (cap, tso);
if (tso->what_next == ThreadKilled) { return; }
- // NB. Blackholing is *compulsory*, we must either do lazy
- // blackholing, or eager blackholing consistently. See Note
- // [upd-black-hole] in sm/Scav.c.
+ // NB. Updatable thunks *must* be blackholed, either by eager blackholing or
+ // lazy blackholing. See Note [upd-black-hole] in sm/Scav.c.
stack_end = tso->stackobj->stack + tso->stackobj->stack_size;
@@ -244,6 +243,8 @@ threadPaused(Capability *cap, StgTSO *tso)
#ifdef THREADED_RTS
retry:
#endif
+ // Note [suspend duplicate work]
+ //
// If the info table is a WHITEHOLE or a BLACKHOLE, then
// another thread has claimed it (via the SET_INFO()
// below), or is in the process of doing so. In that case