aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlfred Perlstein <alfred@FreeBSD.org>2004-10-30 02:57:28 +0000
committerAlfred Perlstein <alfred@FreeBSD.org>2004-10-30 02:57:28 +0000
commitca8592a606c0096bf0366faf2230b675a2fca876 (patch)
tree070193ba1a54b73f33317ccadee486ba9e485962
parenta936ce1f0e47555862be9fc2dc3adc28bf520752 (diff)
downloadsrc-ca8592a606c0096bf0366faf2230b675a2fca876.tar.gz
src-ca8592a606c0096bf0366faf2230b675a2fca876.zip
MFC: 1.295 (clear procfs STOPEVENTS on reciept of SIGKILL)
Approved by: re
Notes
Notes: svn path=/releng/5.3/; revision=137059
-rw-r--r--sys/kern/kern_sig.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c
index 11e588179db4..6bfaabf46d90 100644
--- a/sys/kern/kern_sig.c
+++ b/sys/kern/kern_sig.c
@@ -1775,6 +1775,16 @@ do_tdsignal(struct thread *td, int sig, sigtarget_t target)
!((prop & SA_CONT) && (p->p_flag & P_STOPPED_SIG)))
return;
/*
+ * SIGKILL: Remove procfs STOPEVENTs.
+ */
+ if (sig == SIGKILL) {
+ /* from procfs_ioctl.c: PIOCBIC */
+ p->p_stops = 0;
+ /* from procfs_ioctl.c: PIOCCONT */
+ p->p_step = 0;
+ wakeup(&p->p_step);
+ }
+ /*
* Some signals have a process-wide effect and a per-thread
* component. Most processing occurs when the process next
* tries to cross the user boundary, however there are some