diff options
Diffstat (limited to 'rts/RtsMain.c')
-rw-r--r-- | rts/RtsMain.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/rts/RtsMain.c b/rts/RtsMain.c index 57c38742b6..21b8577cca 100644 --- a/rts/RtsMain.c +++ b/rts/RtsMain.c @@ -24,28 +24,26 @@ // Hack: we assume that we're building a batch-mode system unless // INTERPRETER is set - + #if !defined(INTERPRETER) /* Hack */ // The rts entry point from a compiled program using a Haskell main // function. This gets called from a tiny main function generated by // GHC and linked into each compiled Haskell program that uses a // Haskell main function. -// +// // We expect the caller to pass ZCMain_main_closure for // main_closure. The reason we cannot refer to this symbol directly // is because we're inside the rts and we do not know for sure that // we'll be using a Haskell main function. -// +// // NOTE: This function is marked as _noreturn_ in Main.h int hs_main ( int argc, char *argv[], // program args StgClosure *main_closure, // closure for Main.main RtsConfig rts_config) // RTS configuration - -{ - BEGIN_WINDOWS_VEH_HANDLER +{ int exit_status; SchedulerStatus status; @@ -56,15 +54,14 @@ int hs_main ( int argc, char *argv[], // program args } #endif - - - hs_init_ghc(&argc, &argv, rts_config); + BEGIN_WINDOWS_VEH_HANDLER + // kick off the computation by creating the main thread with a pointer // to mainIO_closure representing the computation of the overall program; // then enter the scheduler with this thread and off we go; - // + // // in a parallel setup, where we have many instances of this code // running on different PEs, we should do this only for the main PE // (IAmMainThread is set in startupHaskell) @@ -100,6 +97,6 @@ int hs_main ( int argc, char *argv[], // program args END_WINDOWS_VEH_HANDLER shutdownHaskellAndExit(exit_status, 0 /* !fastExit */); - // No code beyond this point. Dead code elimination will remove it + // No code beyond this point. Dead code elimination will remove it } # endif /* BATCH_MODE */ |