X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FSignals.h;h=32c7fbdcc71048ce3046fe2db3bdc5aab227ff32;hb=f33bd72eb97043ab109e6afc9dae7cfa9590b68d;hp=0425c7b3bcb7ffbb106a7cf248e7d44df9090aae;hpb=760f104fba0f56e1893006bc97e6afd4b0a0d01b;p=ghc-hetmet.git diff --git a/ghc/rts/Signals.h b/ghc/rts/Signals.h index 0425c7b..32c7fbd 100644 --- a/ghc/rts/Signals.h +++ b/ghc/rts/Signals.h @@ -1,5 +1,4 @@ /* ----------------------------------------------------------------------------- - * $Id: Signals.h,v 1.6 2001/10/31 10:34:29 simonmar Exp $ * * (c) The GHC Team, 1998-1999 * @@ -7,24 +6,40 @@ * * ---------------------------------------------------------------------------*/ -#ifndef PAR +#if !defined(PAR) && !defined(mingw32_HOST_OS) +#define RTS_USER_SIGNALS 1 + +extern void initUserSignals(void); +extern void blockUserSignals(void); +extern void unblockUserSignals(void); + +extern rtsBool anyUserHandlers(void); + +#if !defined(RTS_SUPPORTS_THREADS) extern StgPtr pending_handler_buf[]; extern StgPtr *next_pending_handler; - #define signals_pending() (next_pending_handler != pending_handler_buf) +extern void awaitUserSignals(void); -extern void initUserSignals(void); -extern void blockUserSignals(void); -extern void unblockUserSignals(void); +#else + +extern void startSignalHandler(int sig); + +#endif /* sig_install declared in PrimOps.h */ extern void startSignalHandlers(void); +extern void markSignalHandlers (evac_fn evac); extern void initDefaultHandlers(void); -#else +#elif defined(mingw32_HOST_OS) +#define RTS_USER_SIGNALS 1 +#include "win32/ConsoleHandler.h" +#else /* PAR */ #define signals_pending() (rtsFalse) +#define handleSignalsInThisThread() /* nothing */ #endif /* PAR */