update submodules for GHC.HetMet.GArrow -> Control.GArrow renaming
[ghc-hetmet.git] / rts / RtsAPI.c
index c4babca..8fcf8ce 100644 (file)
@@ -375,8 +375,8 @@ rts_getBool (HaskellObj p)
    -------------------------------------------------------------------------- */
 
 INLINE_HEADER void pushClosure   (StgTSO *tso, StgWord c) {
-  tso->sp--;
-  tso->sp[0] = (W_) c;
+  tso->stackobj->sp--;
+  tso->stackobj->sp[0] = (W_) c;
 }
 
 StgTSO *
@@ -394,7 +394,6 @@ createIOThread (Capability *cap, nat stack_size,  StgClosure *closure)
 {
   StgTSO *t;
   t = createThread (cap, stack_size);
-  pushClosure(t, (W_)&stg_noforceIO_info);
   pushClosure(t, (W_)&stg_ap_v_info);
   pushClosure(t, (W_)closure);
   pushClosure(t, (W_)&stg_enter_info);
@@ -510,7 +509,7 @@ rts_evalLazyIO_ (Capability *cap, HaskellObj p, unsigned int stack_size,
 void
 rts_checkSchedStatus (char* site, Capability *cap)
 {
-    SchedulerStatus rc = cap->running_task->stat;
+    SchedulerStatus rc = cap->running_task->incall->stat;
     switch (rc) {
     case Success:
        return;
@@ -529,7 +528,7 @@ rts_checkSchedStatus (char* site, Capability *cap)
 SchedulerStatus
 rts_getSchedStatus (Capability *cap)
 {
-    return cap->running_task->stat;
+    return cap->running_task->incall->stat;
 }
 
 Capability *
@@ -538,16 +537,16 @@ rts_lock (void)
     Capability *cap;
     Task *task;
 
-    if (running_finalizers) {
+    task = newBoundTask();
+
+    if (task->running_finalizers) {
         errorBelch("error: a C finalizer called back into Haskell.\n"
                    "   This was previously allowed, but is disallowed in GHC 6.10.2 and later.\n"
-                   "   To create finalizers that may call back into Haskll, use\n"
+                   "   To create finalizers that may call back into Haskell, use\n"
                    "   Foreign.Concurrent.newForeignPtr instead of Foreign.newForeignPtr.");
         stg_exit(EXIT_FAILURE);
     }
 
-    task = newBoundTask();
-
     cap = NULL;
     waitForReturnCapability(&cap, task);
     return (Capability *)cap;