Received: by mail.netbsd.org (Postfix, from userid 0) id D785563B23C; Sun, 13 Dec 2009 20:02:26 +0000 (UTC) Received: from cvs.netbsd.org (cvs.NetBSD.org [IPv6:2001:4f8:3:7:2e0:81ff:fe30:95bd]) by mail.netbsd.org (Postfix) with ESMTP id 252D463B1D9 for ; Sun, 13 Dec 2009 20:02:24 +0000 (UTC) Received: by cvs.netbsd.org (Postfix, from userid 500) id 12323175DD; Sun, 13 Dec 2009 20:02:24 +0000 (UTC) MIME-Version: 1.0 Content-Disposition: inline Content-Transfer-Encoding: binary Content-Type: text/plain Date: Sun, 13 Dec 2009 20:02:24 +0000 From: David Laight Subject: CVS commit: src/sys/kern To: source-changes@NetBSD.org X-Mailer: log_accum Message-Id: <20091213200224.12323175DD@cvs.netbsd.org> Sender: source-changes-owner@NetBSD.org List-Id: source-changes.NetBSD.org Precedence: list Reply-To: source-changes-d@NetBSD.org Module Name: src Committed By: dsl Date: Sun Dec 13 20:02:23 UTC 2009 Modified Files: src/sys/kern: sys_pipe.c Log Message: Another, better, fix for PR/26567. Only sleep once within each pipe_read/pipe_write call. If there is no data/space available after we wakeup return ERESTART so then the 'fd' number is validated again. A simple broadcast of the cvs is then enough to evict the correct threads when close() is called from an active thread. To generate a diff of this commit: cvs rdiff -u -r1.124 -r1.125 src/sys/kern/sys_pipe.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.