/* -----------------------------------------------------------------------------
- * $Id: Signals.c,v 1.17 2000/04/14 16:47:43 panne Exp $
+ * $Id: Signals.c,v 1.19 2001/01/24 15:38:14 simonmar Exp $
*
* (c) The GHC Team, 1998-1999
*
*
* ---------------------------------------------------------------------------*/
+#define NON_POSIX_SOURCE
+
#include "Rts.h"
#include "SchedAPI.h"
#include "Schedule.h"
-------------------------------------------------------------------------- */
StgInt
-sig_install(StgInt sig, StgInt spi, StgStablePtr handler, sigset_t *mask)
+stg_sig_install(StgInt sig, StgInt spi, StgStablePtr handler, sigset_t *mask)
{
sigset_t signals;
struct sigaction action;
break;
default:
- barf("sig_install: bad spi");
+ barf("stg_sig_install: bad spi");
}
if (mask != 0)
#else /* PAR */
StgInt
-sig_install(StgInt sig, StgInt spi, StgStablePtr handler, sigset_t *mask)
+stg_sig_install(StgInt sig, StgInt spi, StgStablePtr handler, sigset_t *mask)
{
/* don't fflush(stdout); WORKAROUND bug in Linux glibc */
barf("no signal handling support in a parallel implementation");
/* Oh well, at least we tried. */
prog_belch("failed to install SIGINT handler");
}
+
+ siginterrupt(SIGINT, 1);
}
#endif /*! mingw32_TARGET_OS */