diff options
author | dchagin <dchagin@FreeBSD.org> | 2011-01-30 18:17:38 +0000 |
---|---|---|
committer | dchagin <dchagin@FreeBSD.org> | 2011-01-30 18:17:38 +0000 |
commit | 6115f650ded7de27c2d37bab30f26d54eef9a990 (patch) | |
tree | 7de3b431c26a54e8e7d4cdc114d608a83da09ee9 | |
parent | 1b9efc11bae1a54c61d8bd59f9344c4004c505fb (diff) | |
download | FreeBSD-src-6115f650ded7de27c2d37bab30f26d54eef9a990.zip FreeBSD-src-6115f650ded7de27c2d37bab30f26d54eef9a990.tar.gz |
The kern_wait() code already removes the SIGCHLD signal for the waited
process. Removing other SIGCHLD signals is not needed and may cause
problems.
Pointed out by: jilles
MFC after: 1 Month.
-rw-r--r-- | sys/amd64/linux32/linux32_machdep.c | 7 | ||||
-rw-r--r-- | sys/i386/linux/linux_machdep.c | 7 |
2 files changed, 0 insertions, 14 deletions
diff --git a/sys/amd64/linux32/linux32_machdep.c b/sys/amd64/linux32/linux32_machdep.c index d6961da..986322e 100644 --- a/sys/amd64/linux32/linux32_machdep.c +++ b/sys/amd64/linux32/linux32_machdep.c @@ -1283,7 +1283,6 @@ linux_wait4(struct thread *td, struct linux_wait4_args *args) int error, options; struct rusage ru, *rup; struct l_rusage lru; - struct proc *p; #ifdef DEBUG if (ldebug(wait4)) @@ -1304,12 +1303,6 @@ linux_wait4(struct thread *td, struct linux_wait4_args *args) error = linux_common_wait(td, args->pid, args->status, options, rup); if (error) return (error); - - p = td->td_proc; - PROC_LOCK(p); - sigqueue_delete(&p->p_sigqueue, SIGCHLD); - PROC_UNLOCK(p); - if (args->rusage != NULL) { bsd_to_linux_rusage(rup, &lru); error = copyout(&lru, args->rusage, sizeof(lru)); diff --git a/sys/i386/linux/linux_machdep.c b/sys/i386/linux/linux_machdep.c index 2c6c57b..af2665b 100644 --- a/sys/i386/linux/linux_machdep.c +++ b/sys/i386/linux/linux_machdep.c @@ -1318,7 +1318,6 @@ linux_wait4(struct thread *td, struct linux_wait4_args *args) { int error, options; struct rusage ru, *rup; - struct proc *p; #ifdef DEBUG if (ldebug(wait4)) @@ -1339,12 +1338,6 @@ linux_wait4(struct thread *td, struct linux_wait4_args *args) error = linux_common_wait(td, args->pid, args->status, options, rup); if (error) return (error); - - p = td->td_proc; - PROC_LOCK(p); - sigqueue_delete(&p->p_sigqueue, SIGCHLD); - PROC_UNLOCK(p); - if (args->rusage != NULL) error = copyout(&ru, args->rusage, sizeof(ru)); |