When raising NonTermination with the RTS, build the right value
authorIan Lynagh <igloo@earth.li>
Sat, 21 Jun 2008 14:45:28 +0000 (14:45 +0000)
committerIan Lynagh <igloo@earth.li>
Sat, 21 Jun 2008 14:45:28 +0000 (14:45 +0000)
We now use a nonTermination value in the base library to take take of
constructing the SomeException value, with the dictionaries etc, for us.
We'll probably need to do the same for some other exceptions too

mk/bootstrap.mk
rts/HSprel.def
rts/Prelude.h
rts/Schedule.c
rts/package.conf.in

index 6459530..865f3d3 100644 (file)
@@ -128,7 +128,7 @@ HC_BOOT_LD_OPTS += \
    -u "$(UNDERSCORE)base_GHCziPack_unpackCString_closure" \
    -u "$(UNDERSCORE)base_GHCziIOBase_stackOverflow_closure" \
    -u "$(UNDERSCORE)base_GHCziIOBase_heapOverflow_closure" \
-   -u "$(UNDERSCORE)base_GHCziIOBase_NonTermination_closure" \
+   -u "$(UNDERSCORE)base_GHCziIOBase_nonTermination_closure" \
    -u "$(UNDERSCORE)base_GHCziIOBase_BlockedOnDeadMVar_closure" \
    -u "$(UNDERSCORE)base_GHCziIOBase_Deadlock_closure" \
    -u "$(UNDERSCORE)base_GHCziWeak_runFinalizzerBatch_closure" \
index 0ffe00b..3189c82 100644 (file)
@@ -23,6 +23,6 @@ PrelPack_unpackCString_closure
 PrelIOBase_stackOverflow_closure
 PrelIOBase_BlockedOnDeadMVar_closure
 PrelIOBase_BlockedIndefinitely_closure
-PrelIOBase_NonTermination_closure
+PrelIOBase_nonTermination_closure
 PrelWeak_runFinalizzerBatch_closure
 __stginit_Prelude
index f237e59..2acd02d 100644 (file)
@@ -39,7 +39,7 @@ PRELUDE_CLOSURE(base_GHCziIOBase_stackOverflow_closure);
 PRELUDE_CLOSURE(base_GHCziIOBase_heapOverflow_closure);
 PRELUDE_CLOSURE(base_GHCziIOBase_BlockedOnDeadMVar_closure);
 PRELUDE_CLOSURE(base_GHCziIOBase_BlockedIndefinitely_closure);
-PRELUDE_CLOSURE(base_GHCziIOBase_NonTermination_closure);
+PRELUDE_CLOSURE(base_GHCziIOBase_nonTermination_closure);
 PRELUDE_CLOSURE(base_GHCziIOBase_NestedAtomically_closure);
 
 PRELUDE_CLOSURE(base_GHCziConc_ensureIOManagerIsRunning_closure);
@@ -89,7 +89,7 @@ PRELUDE_INFO(base_GHCziStable_StablePtr_con_info);
 #define heapOverflow_closure      DLL_IMPORT_DATA_REF(base_GHCziIOBase_heapOverflow_closure)
 #define BlockedOnDeadMVar_closure DLL_IMPORT_DATA_REF(base_GHCziIOBase_BlockedOnDeadMVar_closure)
 #define BlockedIndefinitely_closure DLL_IMPORT_DATA_REF(base_GHCziIOBase_BlockedIndefinitely_closure)
-#define NonTermination_closure    DLL_IMPORT_DATA_REF(base_GHCziIOBase_NonTermination_closure)
+#define nonTermination_closure    DLL_IMPORT_DATA_REF(base_GHCziIOBase_nonTermination_closure)
 #define NestedAtomically_closure  DLL_IMPORT_DATA_REF(base_GHCziIOBase_NestedAtomically_closure)
 
 #define Czh_static_info           DLL_IMPORT_DATA_REF(base_GHCziBase_Czh_static_info)
index 96c52f5..a9ea81b 100644 (file)
@@ -1021,7 +1021,7 @@ scheduleDetectDeadlock (Capability *cap, Task *task)
            case BlockedOnException:
            case BlockedOnMVar:
                throwToSingleThreaded(cap, task->tso, 
-                                     (StgClosure *)NonTermination_closure);
+                                     (StgClosure *)nonTermination_closure);
                return;
            default:
                barf("deadlock: main thread blocked in a strange way");
@@ -3156,7 +3156,7 @@ resurrectThreads (StgTSO *threads)
            break;
        case BlockedOnBlackHole:
            throwToSingleThreaded(cap, tso,
-                                 (StgClosure *)NonTermination_closure);
+                                 (StgClosure *)nonTermination_closure);
            break;
        case BlockedOnSTM:
            throwToSingleThreaded(cap, tso,
index 557bb99..045ec1f 100644 (file)
@@ -105,7 +105,7 @@ ld-options:
          , "-u", "_base_GHCziPack_unpackCString_closure"
          , "-u", "_base_GHCziIOBase_stackOverflow_closure"
          , "-u", "_base_GHCziIOBase_heapOverflow_closure"
-         , "-u", "_base_GHCziIOBase_NonTermination_closure"
+         , "-u", "_base_GHCziIOBase_nonTermination_closure"
          , "-u", "_base_GHCziIOBase_BlockedOnDeadMVar_closure"
          , "-u", "_base_GHCziIOBase_BlockedIndefinitely_closure"
          , "-u", "_base_GHCziIOBase_Deadlock_closure"
@@ -139,7 +139,7 @@ ld-options:
          , "-u", "base_GHCziPack_unpackCString_closure"
          , "-u", "base_GHCziIOBase_stackOverflow_closure"
          , "-u", "base_GHCziIOBase_heapOverflow_closure"
-         , "-u", "base_GHCziIOBase_NonTermination_closure"
+         , "-u", "base_GHCziIOBase_nonTermination_closure"
          , "-u", "base_GHCziIOBase_BlockedOnDeadMVar_closure"
          , "-u", "base_GHCziIOBase_BlockedIndefinitely_closure"
          , "-u", "base_GHCziIOBase_Deadlock_closure"