Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/225172e68980ce948e2fd00aa2d8a81657207525

>---------------------------------------------------------------

commit 225172e68980ce948e2fd00aa2d8a81657207525
Author: Simon Marlow <marlo...@gmail.com>
Date:   Thu Nov 1 13:02:57 2012 +0000

    Fix bug in stg_enter_checkbh
    
    This was causing crashes in stm050(ghci), throwto001(ghci), and
    possibly more.

>---------------------------------------------------------------

 rts/HeapStackCheck.cmm |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/rts/HeapStackCheck.cmm b/rts/HeapStackCheck.cmm
index b3ae264..fbceb76 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);
 }
 
 /* 
-----------------------------------------------------------------------------



_______________________________________________
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to