summaryrefslogtreecommitdiff
path: root/rts/HeapStackCheck.cmm
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2012-11-01 13:02:57 +0000
committerSimon Marlow <marlowsd@gmail.com>2012-11-01 13:04:42 +0000
commit225172e68980ce948e2fd00aa2d8a81657207525 (patch)
tree3c77dffaa6916f534928b21aa87260241e5c2de2 /rts/HeapStackCheck.cmm
parent8703bbcdcc9a47a29bccc4343dcea43868fbbeb6 (diff)
downloadhaskell-225172e68980ce948e2fd00aa2d8a81657207525.tar.gz
Fix bug in stg_enter_checkbh
This was causing crashes in stm050(ghci), throwto001(ghci), and possibly more.
Diffstat (limited to 'rts/HeapStackCheck.cmm')
-rw-r--r--rts/HeapStackCheck.cmm6
1 files changed, 5 insertions, 1 deletions
diff --git a/rts/HeapStackCheck.cmm b/rts/HeapStackCheck.cmm
index b3ae2648d9..fbceb7691a 100644
--- a/rts/HeapStackCheck.cmm
+++ b/rts/HeapStackCheck.cmm
@@ -221,7 +221,11 @@ INFO_TABLE_RET ( stg_enter_checkbh, RET_SMALL,
{
foreign "C" checkBlockingQueues(MyCapability() "ptr",
CurrentTSO);
- return (updatee);
+
+ // we need to return updatee now. Note that it might be a pointer
+ // to an indirection or a tagged value, we don't know which, so we
+ // need to ENTER() rather than return().
+ ENTER(updatee);
}
/* -----------------------------------------------------------------------------