Changeset View
Changeset View
Standalone View
Standalone View
head/sys/kern/kern_sig.c
Show First 20 Lines • Show All 2,185 Lines • ▼ Show 20 Lines | tdsendsignal(struct proc *p, struct thread *td, int sig, ksiginfo_t *ksi) | ||||
/* | /* | ||||
* Defer further processing for signals which are held, | * Defer further processing for signals which are held, | ||||
* except that stopped processes must be continued by SIGCONT. | * except that stopped processes must be continued by SIGCONT. | ||||
*/ | */ | ||||
if (action == SIG_HOLD && | if (action == SIG_HOLD && | ||||
!((prop & SA_CONT) && (p->p_flag & P_STOPPED_SIG))) | !((prop & SA_CONT) && (p->p_flag & P_STOPPED_SIG))) | ||||
return (ret); | return (ret); | ||||
/* | /* | ||||
* SIGKILL: Remove procfs STOPEVENTs. | * SIGKILL: Remove procfs STOPEVENTs and ptrace events. | ||||
*/ | */ | ||||
if (sig == SIGKILL) { | if (sig == SIGKILL) { | ||||
p->p_ptevents = 0; | |||||
/* from procfs_ioctl.c: PIOCBIC */ | /* from procfs_ioctl.c: PIOCBIC */ | ||||
p->p_stops = 0; | p->p_stops = 0; | ||||
/* from procfs_ioctl.c: PIOCCONT */ | /* from procfs_ioctl.c: PIOCCONT */ | ||||
p->p_step = 0; | p->p_step = 0; | ||||
wakeup(&p->p_step); | wakeup(&p->p_step); | ||||
} | } | ||||
/* | /* | ||||
* Some signals have a process-wide effect and a per-thread | * Some signals have a process-wide effect and a per-thread | ||||
▲ Show 20 Lines • Show All 1,438 Lines • Show Last 20 Lines |