summaryrefslogtreecommitdiff
path: root/rts/Messages.c
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2010-08-23 10:46:54 +0000
committerSimon Marlow <marlowsd@gmail.com>2010-08-23 10:46:54 +0000
commitfd316eba4747cf8bb9381e06c7afc3c024e1e5c1 (patch)
treef0c88c9a695b1d708a779545a6e5ea5d87b454a1 /rts/Messages.c
parenteff182c31745b958d627d4feb1e53c09298c6836 (diff)
downloadhaskell-fd316eba4747cf8bb9381e06c7afc3c024e1e5c1.tar.gz
Add a couple of missing tests for EAGER_BLACKHOLE
This was leading to looping and excessive allocation, when the computation should have just blocked on the black hole. Reported by Christian Höner zu Siederdissen <choener@tbi.univie.ac.at> on glasgow-haskell-users.
Diffstat (limited to 'rts/Messages.c')
-rw-r--r--rts/Messages.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/rts/Messages.c b/rts/Messages.c
index f7cb809351..5e0fa2544f 100644
--- a/rts/Messages.c
+++ b/rts/Messages.c
@@ -175,6 +175,7 @@ nat messageBlackHole(Capability *cap, MessageBlackHole *msg)
// all.
if (info != &stg_BLACKHOLE_info &&
info != &stg_CAF_BLACKHOLE_info &&
+ info != &__stg_EAGER_BLACKHOLE_info &&
info != &stg_WHITEHOLE_info) {
// if it is a WHITEHOLE, then a thread is in the process of
// trying to BLACKHOLE it. But we know that it was once a