[project @ 2005-01-24 04:26:17 by wolfgang]
authorwolfgang <unknown>
Mon, 24 Jan 2005 04:26:17 +0000 (04:26 +0000)
committerwolfgang <unknown>
Mon, 24 Jan 2005 04:26:17 +0000 (04:26 +0000)
Always flush stdout & stderr at exit, even when terminating abnormally
due to an exception.

GHC/TopHandler.lhs

index 7e5bca4..829752e 100644 (file)
@@ -58,14 +58,15 @@ topHandler err = catchException (real_handler err) topHandler
 --
 real_handler :: Exception -> IO a
 real_handler ex =
+  cleanUp >>
   case ex of
        AsyncException StackOverflow -> do
           reportStackOverflow
           safeExit 2
 
        -- only the main thread gets ExitException exceptions
-       ExitException ExitSuccess     -> cleanUp >> safeExit 0
-       ExitException (ExitFailure n) -> cleanUp >> safeExit n
+       ExitException ExitSuccess     -> safeExit 0
+       ExitException (ExitFailure n) -> safeExit n
 
        other -> do
           reportError other