/* -----------------------------------------------------------------------------
- * $Id: Signals.c,v 1.10 1999/11/09 15:46:57 simonmar Exp $
+ * $Id: Signals.c,v 1.12 2000/01/13 12:40:16 simonmar Exp $
*
* (c) The GHC Team, 1998-1999
*
if (handlers == NULL) {
/* don't fflush(stdout); WORKAROUND bug in Linux glibc */
- fprintf(stderr, "VM exhausted (in more_handlers)\n");
- exit(EXIT_FAILURE);
+ barf("VM exhausted (in more_handlers)");
}
for(i = nHandlers; i <= sig; i++)
/* Fill in the new slots with default actions */
next_pending_handler--;
- /* create*Thread puts the thread on the head of the runnable
- * queue, hence it will be run next. Poor man's priority
- * scheduling.
- */
createIOThread(RtsFlags.GcFlags.initialStkSize,
(StgClosure *) *next_pending_handler);
}
sig_install(StgInt sig, StgInt spi, StgStablePtr handler, sigset_t *mask)
{
/* don't fflush(stdout); WORKAROUND bug in Linux glibc */
- fprintf(stderr,
- "No signal handling support in a parallel implementation.\n");
- exit(EXIT_FAILURE);
+ barf("no signal handling support in a parallel implementation");
}
void
} else
#endif
- shutdownHaskellAndExit(EXIT_FAILURE);
+ shutdownHaskellAndExit(EXIT_INTERRUPTED);
}
/*