From owner-freebsd-threads@FreeBSD.ORG Tue Nov 4 15:41:14 2008 Return-Path: Delivered-To: freebsd-threads@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1355D1065688 for ; Tue, 4 Nov 2008 15:41:14 +0000 (UTC) (envelope-from bright@elvis.mu.org) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.freebsd.org (Postfix) with ESMTP id F30A18FC19 for ; Tue, 4 Nov 2008 15:41:13 +0000 (UTC) (envelope-from bright@elvis.mu.org) Received: by elvis.mu.org (Postfix, from userid 1192) id A970A1A3C4B; Tue, 4 Nov 2008 07:41:13 -0800 (PST) Date: Tue, 4 Nov 2008 07:41:13 -0800 From: Alfred Perlstein To: Ed Maste Message-ID: <20081104154113.GP60438@elvis.mu.org> References: <200811041440.mA4Ee31J084489@freefall.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200811041440.mA4Ee31J084489@freefall.freebsd.org> User-Agent: Mutt/1.4.2.3i Cc: freebsd-threads@FreeBSD.org Subject: Re: threads/128180: pthread_cond_broadcast(3) lost wakeup X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2008 15:41:14 -0000 * Ed Maste [081104 06:40] wrote: > The following reply was made to PR threads/128180; it has been noted by GNATS. > > From: Ed Maste > To: bug-followup@FreeBSD.org, kurt@intricatesoftware.com > Cc: > Subject: Re: threads/128180: pthread_cond_broadcast(3) lost wakeup > Date: Tue, 4 Nov 2008 09:09:38 -0500 > > > The test program doesn't look correct to me. It seems possible > > for only a few of the threads (as little as 2) to do all the > > work. Thread 1 can start doing work, then wait for a broadcast. > > Thread 2 can start doing his work, then broadcast waking thread 1. > > It looks to me like the "tickets" and "finished" globals should make > the test program operate correctly. If the scenario you describe > happens, thread 1 will just enter pthread_cond_wait again and wait > for the broadcast from the primordial thread. This bug may have been fixed in 6-stable and 6.4. http://svn.freebsd.org/viewvc/base?view=revision&revision=184172 Can you try upgrading? -- - Alfred Perlstein