update submodules for GHC.HetMet.GArrow -> Control.GArrow renaming
[ghc-hetmet.git] / rts / RaiseAsync.h
index 3ab96ab..336ab30 100644 (file)
@@ -13,6 +13,9 @@
 #define THROWTO_BLOCKED   1
 
 #ifndef CMINUSMINUS
+
+#include "BeginPrivate.h"
+
 void throwToSingleThreaded (Capability *cap,
                            StgTSO *tso,
                            StgClosure *exception);
@@ -20,25 +23,21 @@ void throwToSingleThreaded (Capability *cap,
 void throwToSingleThreaded_ (Capability *cap, 
                             StgTSO *tso, 
                             StgClosure *exception, 
-                            rtsBool stop_at_atomically,
-                            StgPtr stop_here);
+                            rtsBool stop_at_atomically);
 
 void suspendComputation (Capability *cap, 
                         StgTSO *tso, 
-                        StgPtr stop_here);
+                        StgUpdateFrame *stop_here);
 
-nat throwTo (Capability *cap,           // the Capability we hold 
-            StgTSO *source,             // the TSO sending the exception
-            StgTSO *target,             // the TSO receiving the exception
-            StgClosure *exception,      // the exception closure
-            /*[out]*/ void **out   // pass to throwToReleaseTarget()
-    );
+MessageThrowTo *throwTo (Capability *cap,      // the Capability we hold 
+                         StgTSO *source,
+                         StgTSO *target,
+                         StgClosure *exception); // the exception closure
 
-#ifdef THREADED_RTS
-void throwToReleaseTarget (void *tso);
-#endif
+nat throwToMsg (Capability *cap,
+                MessageThrowTo *msg);
 
-void maybePerformBlockedException (Capability *cap, StgTSO *tso);
+int  maybePerformBlockedException (Capability *cap, StgTSO *tso);
 void awakenBlockedExceptionQueue  (Capability *cap, StgTSO *tso);
 
 /* Determine whether a thread is interruptible (ie. blocked
@@ -50,7 +49,7 @@ interruptible(StgTSO *t)
 {
   switch (t->why_blocked) {
   case BlockedOnMVar:
-  case BlockedOnException:
+  case BlockedOnMsgThrowTo:
   case BlockedOnRead:
   case BlockedOnWrite:
 #if defined(mingw32_HOST_OS)
@@ -65,6 +64,8 @@ interruptible(StgTSO *t)
   }
 }
 
+#include "EndPrivate.h"
+
 #endif /* CMINUSMINUS */
 
 #endif /* RAISEASYNC_H */