From: Ian Lynagh Date: Sat, 21 Jun 2008 14:45:28 +0000 (+0000) Subject: When raising NonTermination with the RTS, build the right value X-Git-Tag: 2008-09-12~377 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=179a3a7bd67ccc816e3b934eff770fb49c4cc456 When raising NonTermination with the RTS, build the right value 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 --- diff --git a/mk/bootstrap.mk b/mk/bootstrap.mk index 6459530..865f3d3 100644 --- a/mk/bootstrap.mk +++ b/mk/bootstrap.mk @@ -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" \ diff --git a/rts/HSprel.def b/rts/HSprel.def index 0ffe00b..3189c82 100644 --- a/rts/HSprel.def +++ b/rts/HSprel.def @@ -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 diff --git a/rts/Prelude.h b/rts/Prelude.h index f237e59..2acd02d 100644 --- a/rts/Prelude.h +++ b/rts/Prelude.h @@ -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) diff --git a/rts/Schedule.c b/rts/Schedule.c index 96c52f5..a9ea81b 100644 --- a/rts/Schedule.c +++ b/rts/Schedule.c @@ -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, diff --git a/rts/package.conf.in b/rts/package.conf.in index 557bb99..045ec1f 100644 --- a/rts/package.conf.in +++ b/rts/package.conf.in @@ -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"