Sun Apr 19 23:05:05 2020 UTC ()
lwp_wait(): don't need to check for process exit, cv_wait_sig() does it.


(ad)
diff -r1.233 -r1.234 src/sys/kern/kern_lwp.c

cvs diff -r1.233 -r1.234 src/sys/kern/kern_lwp.c (expand / switch to context diff)
--- src/sys/kern/kern_lwp.c 2020/04/04 20:20:12 1.233
+++ src/sys/kern/kern_lwp.c 2020/04/19 23:05:04 1.234
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_lwp.c,v 1.233 2020/04/04 20:20:12 thorpej Exp $	*/
+/*	$NetBSD: kern_lwp.c,v 1.234 2020/04/19 23:05:04 ad Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2006, 2007, 2008, 2009, 2019, 2020
@@ -211,7 +211,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_lwp.c,v 1.233 2020/04/04 20:20:12 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_lwp.c,v 1.234 2020/04/19 23:05:04 ad Exp $");
 
 #include "opt_ddb.h"
 #include "opt_lockdebug.h"
@@ -740,13 +740,11 @@
 		}
 
 		/*
-		 * Break out if the process is exiting, or if all LWPs are
-		 * in _lwp_wait().  There are other ways to hang the process
-		 * with _lwp_wait(), but the sleep is interruptable so
-		 * little point checking for them.
+		 * Break out if all LWPs are in _lwp_wait().  There are
+		 * other ways to hang the process with _lwp_wait(), but the
+		 * sleep is interruptable so little point checking for them.
 		 */
-		if ((p->p_sflag & PS_WEXIT) != 0 ||
-		    p->p_nlwpwait == p->p_nlwps) {
+		if (p->p_nlwpwait == p->p_nlwps) {
 			error = EDEADLK;
 			break;
 		}