X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fwin32%2FConsoleHandler.c;h=19057a3d8d5c3e1d855aeb12cd1c4dce16c49044;hb=d108044bef62f6a0d579c92ced5e8188f72edc2d;hp=2cd10ecc2df42cce67956019459a1207f59b34d0;hpb=f86e7206ea94b48b94fb61007a1c5d55b8c60f45;p=ghc-hetmet.git diff --git a/rts/win32/ConsoleHandler.c b/rts/win32/ConsoleHandler.c index 2cd10ec..19057a3 100644 --- a/rts/win32/ConsoleHandler.c +++ b/rts/win32/ConsoleHandler.c @@ -5,10 +5,8 @@ #include "Rts.h" #include #include "ConsoleHandler.h" -#include "SchedAPI.h" #include "Schedule.h" #include "RtsUtils.h" -#include "RtsFlags.h" #include "AsyncIO.h" #include "RtsSignals.h" @@ -119,6 +117,12 @@ void initDefaultHandlers(void) } } +void resetDefaultHandlers(void) +{ + if ( !SetConsoleCtrlHandler(shutdown_handler, FALSE) ) { + errorBelch("warning: failed to uninstall default console handler"); + } +} /* * Function: blockUserSignals() @@ -234,6 +238,9 @@ static BOOL WINAPI generic_handler(DWORD dwCtrlType) stg_pending_buf[stg_pending_events] = dwCtrlType; stg_pending_events++; } + + // we need to wake up awaitEvent() + abandonRequestWait(); #endif return TRUE; }