コード例 #1
0
ファイル: main.c プロジェクト: qykth-git/Gauche
/* signal handler setup.  let's catch as many signals as possible. */
static void sig_setup(void)
{
    sigset_t set;
    sigfillset(&set);
    sigdelset(&set, SIGABRT);
    sigdelset(&set, SIGILL);
#ifdef SIGKILL
    sigdelset(&set, SIGKILL);
#endif
#ifdef SIGCONT
    sigdelset(&set, SIGCONT);
#endif
#ifdef SIGSTOP
    sigdelset(&set, SIGSTOP);
#endif
    sigdelset(&set, SIGSEGV);
#ifdef SIGBUS
    sigdelset(&set, SIGBUS);
#endif /*SIGBUS*/

    /* Exclude signals used by GC to stop and restart the world. */
#ifdef GC_THREADS
    int sig_suspend = GC_get_suspend_signal();
    if (sig_suspend >= 0) sigdelset(&set, sig_suspend);
    int sig_restart = GC_get_thr_restart_signal();
    if (sig_restart >= 0) sigdelset(&set, sig_restart);
#endif /*GC_THREADS*/

    Scm_SetMasterSigmask(&set);
}
コード例 #2
0
ファイル: boehm-gc.c プロジェクト: Sciumo/mono
int
mono_gc_get_suspend_signal (void)
{
#ifdef USE_INCLUDED_GC
	return GC_get_suspend_signal ();
#else
	return -1;
#endif
}
コード例 #3
0
ファイル: boehm-gc.c プロジェクト: simudream/mono
int
mono_gc_get_suspend_signal (void)
{
	return GC_get_suspend_signal ();
}