summaryrefslogtreecommitdiff
path: root/rts/ThreadPaused.c
diff options
context:
space:
mode:
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