GHC.Conc.Sync: Pass TSO to stackOverflow
authorBen Gamari <bgamari.foss@gmail.com>
Sat, 7 Sep 2013 22:16:52 +0000 (18:16 -0400)
committerAustin Seipp <aseipp@pobox.com>
Sun, 8 Sep 2013 06:53:10 +0000 (01:53 -0500)
Signed-off-by: Austin Seipp <aseipp@pobox.com>
libraries/base/GHC/Conc/Sync.lhs

index 135c1fe..4832740 100644 (file)
@@ -764,7 +764,9 @@ sharedCAF a get_or_set =
                 deRefStablePtr (castPtrToStablePtr (castPtr ref2))
 
 reportStackOverflow :: IO ()
-reportStackOverflow = callStackOverflowHook
+reportStackOverflow = do
+     ThreadId tid <- myThreadId
+     callStackOverflowHook tid
 
 reportError :: SomeException -> IO ()
 reportError ex = do
@@ -774,7 +776,7 @@ reportError ex = do
 -- SUP: Are the hooks allowed to re-enter Haskell land?  If so, remove
 -- the unsafe below.
 foreign import ccall unsafe "stackOverflow"
-        callStackOverflowHook :: IO ()
+        callStackOverflowHook :: ThreadId# -> IO ()
 
 {-# NOINLINE uncaughtExceptionHandler #-}
 uncaughtExceptionHandler :: IORef (SomeException -> IO ())