summaryrefslogtreecommitdiff
path: root/rts
diff options
context:
space:
mode:
authorÖmer Sinan Ağacan <omeragacan@gmail.com>2018-09-24 16:21:27 +0300
committerÖmer Sinan Ağacan <omeragacan@gmail.com>2018-09-24 16:21:50 +0300
commitd90946cea1357d3e99805c27dab1e811785a4088 (patch)
treed0de72599c28102b28bd532d25979bb5533577d6 /rts
parente68b439fe5de61b9a2ca51af472185c62ccb8b46 (diff)
downloadhaskell-d90946cea1357d3e99805c27dab1e811785a4088.tar.gz
Fix a MSG_BLACKHOLE sanity check, add some comments
Reviewers: simonmar, bgamari, erikd Reviewed By: simonmar Subscribers: rwbarton, carter GHC Trac Issues: #15508 Differential Revision: https://phabricator.haskell.org/D5178
Diffstat (limited to 'rts')
-rw-r--r--rts/sm/Sanity.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/rts/sm/Sanity.c b/rts/sm/Sanity.c
index 8d4171b1cd..c6861f4134 100644
--- a/rts/sm/Sanity.c
+++ b/rts/sm/Sanity.c
@@ -292,8 +292,12 @@ checkClosure( const StgClosure* p )
ASSERT(LOOKS_LIKE_CLOSURE_PTR(bq->bh));
ASSERT(get_itbl((StgClosure *)(bq->owner))->type == TSO);
- ASSERT(bq->queue == (MessageBlackHole*)END_TSO_QUEUE
- || bq->queue->header.info == &stg_MSG_BLACKHOLE_info);
+ ASSERT(// A bq with no other blocked TSOs:
+ bq->queue == (MessageBlackHole*)END_TSO_QUEUE ||
+ // A bq with blocked TSOs in its queue:
+ bq->queue->header.info == &stg_MSG_BLACKHOLE_info ||
+ // A bq with a deleted (in throwToMsg()) MSG_BLACKHOLE:
+ bq->queue->header.info == &stg_IND_info);
ASSERT(bq->link == (StgBlockingQueue*)END_TSO_QUEUE ||
get_itbl((StgClosure *)(bq->link))->type == IND ||
get_itbl((StgClosure *)(bq->link))->type == BLOCKING_QUEUE);