svn commit: r246404 - stable/9/sys/kern

Konstantin Belousov kib at FreeBSD.org
Wed Feb 6 13:49:57 UTC 2013


Author: kib
Date: Wed Feb  6 13:49:56 2013
New Revision: 246404
URL: http://svnweb.freebsd.org/changeset/base/246404

Log:
  MFC r246118:
  The case of pid == WAIT_MYPGRP for the kern_wait() is already handled
  in kern_wait6(), which is called by kern_wait().  Remove the redundand
  check, introduced in r243136, and add a comment noting this, to make
  the code less confusing.

Modified:
  stable/9/sys/kern/kern_exit.c
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/kern/kern_exit.c
==============================================================================
--- stable/9/sys/kern/kern_exit.c	Wed Feb  6 13:17:41 2013	(r246403)
+++ stable/9/sys/kern/kern_exit.c	Wed Feb  6 13:49:56 2013	(r246404)
@@ -1019,20 +1019,18 @@ kern_wait(struct thread *td, pid_t pid, 
     struct rusage *rusage)
 {
 	struct __wrusage wru, *wrup;
-	struct proc *q;
 	idtype_t idtype;
 	id_t id;
 	int ret;
 
+	/*
+	 * Translate the special pid values into the (idtype, pid)
+	 * pair for kern_wait6.  The WAIT_MYPGRP case is handled by
+	 * kern_wait6() on its own.
+	 */
 	if (pid == WAIT_ANY) {
 		idtype = P_ALL;
 		id = 0;
-	} else if (pid == WAIT_MYPGRP) {
-		idtype = P_PGID;
-		q = td->td_proc;
-		PROC_LOCK(q);
-		id = (id_t)q->p_pgid;
-		PROC_UNLOCK(q);
 	} else if (pid < 0) {
 		idtype = P_PGID;
 		id = (id_t)-pid;
@@ -1040,10 +1038,12 @@ kern_wait(struct thread *td, pid_t pid, 
 		idtype = P_PID;
 		id = (id_t)pid;
 	}
+
 	if (rusage != NULL)
 		wrup = &wru;
 	else
 		wrup = NULL;
+
 	/*
 	 * For backward compatibility we implicitly add flags WEXITED
 	 * and WTRAPPED here.


More information about the svn-src-all mailing list