summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorArtur Grabowski <art@cvs.openbsd.org>2007-01-17 23:08:19 +0000
committerArtur Grabowski <art@cvs.openbsd.org>2007-01-17 23:08:19 +0000
commita1445392b23bd837ebef1642251922ff13aee71e (patch)
tree897adf034d45d871499785bc9f64b8598da50598 /sys
parenta777a55ef56e44cda608b2c05754b3ee7d88d710 (diff)
When sending signals, instead of checking if the process sending the
signal to is the curproc, check if it's SONPROC. That way we'll also signotify processes on other CPUs. This gives MD code the opportunity to actually deliver signals to other CPUs faster than the clock interrupt (in the worst case). This is a NOP until MD code is fixed. miod@ ok
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/kern_sig.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c
index 7af39621580..5183532147a 100644
--- a/sys/kern/kern_sig.c
+++ b/sys/kern/kern_sig.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_sig.c,v 1.85 2007/01/16 17:52:18 thib Exp $ */
+/* $OpenBSD: kern_sig.c,v 1.86 2007/01/17 23:08:18 art Exp $ */
/* $NetBSD: kern_sig.c,v 1.54 1996/04/22 01:38:32 christos Exp $ */
/*
@@ -973,14 +973,15 @@ psignal(struct proc *p, int signum)
unsleep(p);
goto out;
+ case SONPROC:
+ signotify(p);
+ /* FALLTHROUGH */
default:
/*
* SRUN, SIDL, SZOMB do nothing with the signal,
* other than kicking ourselves if we are running.
* It will either never be noticed, or noticed very soon.
*/
- if (p == curproc)
- signotify(p);
goto out;
}
/*NOTREACHED*/