diff options
author | alfred <alfred@FreeBSD.org> | 2004-10-01 14:15:20 +0000 |
---|---|---|
committer | alfred <alfred@FreeBSD.org> | 2004-10-01 14:15:20 +0000 |
commit | 0efc91b067ab28879f1c36e691901b416e50f3bc (patch) | |
tree | 80677560a69fa0d63f830cac1abf2ee922d18aba | |
parent | 104924bb066bb584ad43a48720f7fec7806b64e7 (diff) | |
download | FreeBSD-src-0efc91b067ab28879f1c36e691901b416e50f3bc.zip FreeBSD-src-0efc91b067ab28879f1c36e691901b416e50f3bc.tar.gz |
Clear a process's procfs trace points upon delivery of SIGKILL.
MT5 candidate. (Desired features for 5.3-RELEASE "More truss problems")
-rw-r--r-- | sys/kern/kern_sig.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 4ecbd03..4fcf79e 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 |