diff options
author | jeff <jeff@FreeBSD.org> | 2003-03-31 22:12:09 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2003-03-31 22:12:09 +0000 |
commit | 6e0127855502b58ac0a954c1582d5e729dfc5411 (patch) | |
tree | cb5fe42ff44ceb4eea253284790f6571a538f2a1 /sys | |
parent | 4a3718fb251369224e283ab56a6a157fc2cc75ed (diff) | |
download | FreeBSD-src-6e0127855502b58ac0a954c1582d5e729dfc5411.zip FreeBSD-src-6e0127855502b58ac0a954c1582d5e729dfc5411.tar.gz |
- Mark signals which may be delivered to any thread in the process with
SA_PROC. Signals without this flag should be directed to a particular
thread if this is possible.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kern/kern_sig.c | 63 |
1 files changed, 32 insertions, 31 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 9bf4385..b5db78c 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -132,39 +132,40 @@ SYSCTL_INT(_kern, OID_AUTO, coredump, CTLFLAG_RW, #define SA_IGNORE 0x10 /* ignore by default */ #define SA_CONT 0x20 /* continue if suspended */ #define SA_CANTMASK 0x40 /* non-maskable, catchable */ +#define SA_PROC 0x80 /* deliverable to any thread */ static int sigproptbl[NSIG] = { - SA_KILL, /* SIGHUP */ - SA_KILL, /* SIGINT */ - SA_KILL|SA_CORE, /* SIGQUIT */ - SA_KILL|SA_CORE, /* SIGILL */ - SA_KILL|SA_CORE, /* SIGTRAP */ - SA_KILL|SA_CORE, /* SIGABRT */ - SA_KILL|SA_CORE, /* SIGEMT */ - SA_KILL|SA_CORE, /* SIGFPE */ - SA_KILL, /* SIGKILL */ - SA_KILL|SA_CORE, /* SIGBUS */ - SA_KILL|SA_CORE, /* SIGSEGV */ - SA_KILL|SA_CORE, /* SIGSYS */ - SA_KILL, /* SIGPIPE */ - SA_KILL, /* SIGALRM */ - SA_KILL, /* SIGTERM */ - SA_IGNORE, /* SIGURG */ - SA_STOP, /* SIGSTOP */ - SA_STOP|SA_TTYSTOP, /* SIGTSTP */ - SA_IGNORE|SA_CONT, /* SIGCONT */ - SA_IGNORE, /* SIGCHLD */ - SA_STOP|SA_TTYSTOP, /* SIGTTIN */ - SA_STOP|SA_TTYSTOP, /* SIGTTOU */ - SA_IGNORE, /* SIGIO */ - SA_KILL, /* SIGXCPU */ - SA_KILL, /* SIGXFSZ */ - SA_KILL, /* SIGVTALRM */ - SA_KILL, /* SIGPROF */ - SA_IGNORE, /* SIGWINCH */ - SA_IGNORE, /* SIGINFO */ - SA_KILL, /* SIGUSR1 */ - SA_KILL, /* SIGUSR2 */ + SA_KILL|SA_PROC, /* SIGHUP */ + SA_KILL|SA_PROC, /* SIGINT */ + SA_KILL|SA_CORE|SA_PROC, /* SIGQUIT */ + SA_KILL|SA_CORE, /* SIGILL */ + SA_KILL|SA_CORE, /* SIGTRAP */ + SA_KILL|SA_CORE, /* SIGABRT */ + SA_KILL|SA_CORE|SA_PROC, /* SIGEMT */ + SA_KILL|SA_CORE, /* SIGFPE */ + SA_KILL|SA_PROC, /* SIGKILL */ + SA_KILL|SA_CORE, /* SIGBUS */ + SA_KILL|SA_CORE, /* SIGSEGV */ + SA_KILL|SA_CORE, /* SIGSYS */ + SA_KILL|SA_PROC, /* SIGPIPE */ + SA_KILL|SA_PROC, /* SIGALRM */ + SA_KILL|SA_PROC, /* SIGTERM */ + SA_IGNORE|SA_PROC, /* SIGURG */ + SA_STOP|SA_PROC, /* SIGSTOP */ + SA_STOP|SA_TTYSTOP|SA_PROC, /* SIGTSTP */ + SA_IGNORE|SA_CONT|SA_PROC, /* SIGCONT */ + SA_IGNORE|SA_PROC, /* SIGCHLD */ + SA_STOP|SA_TTYSTOP|SA_PROC, /* SIGTTIN */ + SA_STOP|SA_TTYSTOP|SA_PROC, /* SIGTTOU */ + SA_IGNORE|SA_PROC, /* SIGIO */ + SA_KILL, /* SIGXCPU */ + SA_KILL, /* SIGXFSZ */ + SA_KILL|SA_PROC, /* SIGVTALRM */ + SA_KILL|SA_PROC, /* SIGPROF */ + SA_IGNORE|SA_PROC, /* SIGWINCH */ + SA_IGNORE|SA_PROC, /* SIGINFO */ + SA_KILL|SA_PROC, /* SIGUSR1 */ + SA_KILL|SA_PROC, /* SIGUSR2 */ }; /* |