cddb4bae6c8e7eb636eebad060329a0d7d4d67e6
[ghc-hetmet.git] / ghc / rts / Signals.h
1 /* -----------------------------------------------------------------------------
2  * $Id: Signals.h,v 1.10 2003/03/29 00:00:43 sof Exp $
3  *
4  * (c) The GHC Team, 1998-1999
5  *
6  * Signal processing / handling.
7  *
8  * ---------------------------------------------------------------------------*/
9
10 #ifndef PAR
11
12 extern StgPtr pending_handler_buf[];
13 extern StgPtr *next_pending_handler;
14
15 #define signals_pending() (next_pending_handler != pending_handler_buf)
16
17 extern void    initUserSignals(void);
18 extern void    blockUserSignals(void);
19 extern void    unblockUserSignals(void);
20
21 extern rtsBool anyUserHandlers(void);
22 extern void    awaitUserSignals(void);
23
24 /* sig_install declared in PrimOps.h */
25
26 extern void startSignalHandlers(void);
27 extern void markSignalHandlers (evac_fn evac);
28 extern void initDefaultHandlers(void);
29
30 #if !defined(mingw32_TARGET_OS)
31 extern void handleSignalsInThisThread(void);
32 #else
33 #define handleSignalsInThisThread() /* nothing */
34 #endif
35
36 #else
37
38 #define signals_pending() (rtsFalse)
39
40 #endif /* PAR */