diff options
Diffstat (limited to 'sys/kern/kern_sig.c')
-rw-r--r-- | sys/kern/kern_sig.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index a8b7cee..e3e0e59 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -433,10 +433,11 @@ execsigs(p) } /* - * Manipulate signal mask. - * Note that we receive new mask, not pointer, - * and return old mask as return value; - * the library stub does the rest. + * do_sigprocmask() - MP SAFE ONLY IF p == curproc + * + * Manipulate signal mask. This routine is MP SAFE *ONLY* if + * p == curproc. Also remember that in order to remain MP SAFE + * no spl*() calls may be made. */ static int do_sigprocmask(p, how, set, oset, old) @@ -452,7 +453,6 @@ do_sigprocmask(p, how, set, oset, old) error = 0; if (set != NULL) { - (void) splhigh(); switch (how) { case SIG_BLOCK: SIG_CANTMASK(*set); @@ -472,11 +472,14 @@ do_sigprocmask(p, how, set, oset, old) error = EINVAL; break; } - (void) spl0(); } return (error); } +/* + * sigprocmask() - MP SAFE + */ + #ifndef _SYS_SYSPROTO_H_ struct sigprocmask_args { int how; @@ -507,6 +510,10 @@ sigprocmask(p, uap) return (error); } +/* + * osigprocmask() - MP SAFE + */ + #ifndef _SYS_SYSPROTO_H_ struct osigprocmask_args { int how; |