[project @ 2005-10-20 14:00:36 by simonmar]
[ghc-hetmet.git] / ghc / rts / Signals.h
index 3318101..32c7fbd 100644 (file)
@@ -1,5 +1,4 @@
 /* -----------------------------------------------------------------------------
- * $Id: Signals.h,v 1.11 2003/04/01 15:05:22 sof Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
@@ -7,20 +6,27 @@
  *
  * ---------------------------------------------------------------------------*/
 
-#if !defined(PAR) && !defined(mingw32_TARGET_OS)
+#if !defined(PAR) && !defined(mingw32_HOST_OS)
 #define RTS_USER_SIGNALS 1
 
-extern StgPtr pending_handler_buf[];
-extern StgPtr *next_pending_handler;
-
-#define signals_pending() (next_pending_handler != pending_handler_buf)
-
 extern void    initUserSignals(void);
 extern void    blockUserSignals(void);
 extern void    unblockUserSignals(void);
 
 extern rtsBool anyUserHandlers(void);
-extern void    awaitUserSignals(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);
+
+#else
+
+extern void startSignalHandler(int sig);
+
+#endif
 
 /* sig_install declared in PrimOps.h */
 
@@ -28,11 +34,12 @@ extern void startSignalHandlers(void);
 extern void markSignalHandlers (evac_fn evac);
 extern void initDefaultHandlers(void);
 
-extern void handleSignalsInThisThread(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 && !mingw32_TARGET_OS */
+#endif /* PAR */