X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FRtsStartup.c;h=b85b15305f8e41faae8287881085d850692624da;hb=8ae8c865716e0ee03383ddfae58ab778ce527412;hp=f0b2170bad391220331e6f26fe537b1d800da25d;hpb=a916885ce70142ae5c05cc9e28230c308821e3d6;p=ghc-hetmet.git diff --git a/rts/RtsStartup.c b/rts/RtsStartup.c index f0b2170..b85b153 100644 --- a/rts/RtsStartup.c +++ b/rts/RtsStartup.c @@ -17,6 +17,7 @@ #include "sm/Storage.h" #include "RtsUtils.h" +#include "Prelude.h" #include "Schedule.h" /* initScheduler */ #include "Stats.h" /* initStats */ #include "STM.h" /* initSTM */ @@ -29,7 +30,6 @@ #include "sm/BlockAlloc.h" #include "Trace.h" #include "Stable.h" -#include "eventlog/EventLog.h" #include "Hash.h" #include "Profiling.h" #include "Timer.h" @@ -146,9 +146,12 @@ hs_init(int *argc, char **argv[]) #endif /* initTracing must be after setupRtsFlags() */ -#ifdef DEBUG +#ifdef TRACING initTracing(); #endif + /* Dtrace events are always enabled + */ + dtraceEventStartup(); /* initialise scheduler data structures (needs to be done before * initStorage()). @@ -165,8 +168,8 @@ hs_init(int *argc, char **argv[]) * knows about. We don't know whether these turn out to be CAFs * or refer to CAFs, but we have to assume that they might. */ - getStablePtr((StgPtr)base_GHCziTopHandler_runIO_closure); - getStablePtr((StgPtr)base_GHCziTopHandler_runNonIO_closure); + getStablePtr((StgPtr)runIO_closure); + getStablePtr((StgPtr)runNonIO_closure); getStablePtr((StgPtr)stackOverflow_closure); getStablePtr((StgPtr)heapOverflow_closure); getStablePtr((StgPtr)runFinalizerBatch_closure); @@ -190,12 +193,6 @@ hs_init(int *argc, char **argv[]) initProfiling1(); -#ifdef EVENTLOG - if (RtsFlags.EventLogFlags.doEventLogging) { - initEventLogging(); - } -#endif - /* start the virtual timer 'subsystem'. */ initTimer(); startTimer(); @@ -344,6 +341,9 @@ hs_exit_(rtsBool wait_foreign) OnExitHook(); + // Free the full argv storage + freeFullProgArgv(); + #if defined(THREADED_RTS) ioManagerDie(); #endif @@ -421,11 +421,9 @@ hs_exit_(rtsBool wait_foreign) if (prof_file != NULL) fclose(prof_file); #endif -#ifdef EVENTLOG - if (RtsFlags.EventLogFlags.doEventLogging) { - endEventLogging(); - freeEventLogging(); - } +#ifdef TRACING + endTracing(); + freeTracing(); #endif #if defined(TICKY_TICKY)