Wake up PIOCWAIT handler on the process exit in addition to the stop
events. &p->p_stype is explicitely woken up on process exit for us. Now, truss /nonexistent exits with error instead of waiting until killed by signal. Reported by: Nikos Vassiliadis nvass at teledomenet gr Reviewed by: jhb MFC after: 1 week
This commit is contained in:
parent
1ea7de37f9
commit
dbf989ea6a
@ -124,7 +124,7 @@ procfs_ioctl(PFS_IOCTL_ARGS)
|
||||
*(unsigned int *)data = p->p_pfsflags;
|
||||
break;
|
||||
case PIOCWAIT:
|
||||
while (p->p_step == 0) {
|
||||
while (p->p_step == 0 && (p->p_flag & P_WEXIT) == 0) {
|
||||
/* sleep until p stops */
|
||||
error = msleep(&p->p_stype, &p->p_mtx,
|
||||
PWAIT|PCATCH, "pioctl", 0);
|
||||
@ -142,7 +142,7 @@ procfs_ioctl(PFS_IOCTL_ARGS)
|
||||
break;
|
||||
#ifdef COMPAT_IA32
|
||||
case PIOCWAIT32:
|
||||
while (p->p_step == 0) {
|
||||
while (p->p_step == 0 && (p->p_flag & P_WEXIT) == 0) {
|
||||
/* sleep until p stops */
|
||||
error = msleep(&p->p_stype, &p->p_mtx,
|
||||
PWAIT|PCATCH, "pioctl", 0);
|
||||
|
Loading…
Reference in New Issue
Block a user