From owner-freebsd-hackers Mon Feb 5 11:31:13 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from fw.wintelcom.net (ns1.wintelcom.net [209.1.153.20]) by hub.freebsd.org (Postfix) with ESMTP id 16F1E37B684 for ; Mon, 5 Feb 2001 11:30:56 -0800 (PST) Received: (from bright@localhost) by fw.wintelcom.net (8.10.0/8.10.0) id f15JUtq07106; Mon, 5 Feb 2001 11:30:55 -0800 (PST) Date: Mon, 5 Feb 2001 11:30:55 -0800 From: Alfred Perlstein To: "Paul D. Schmidt" Cc: hackers@FreeBSD.ORG Subject: Re: known pthread bug? Message-ID: <20010205113055.T26076@fw.wintelcom.net> References: <20010204232301.C30977@uberhacker.org> <20010205005937.M26076@fw.wintelcom.net> <20010205111506.A73450@uberhacker.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20010205111506.A73450@uberhacker.org>; from pds@uberhacker.org on Mon, Feb 05, 2001 at 11:15:06AM -0800 Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG * Paul D. Schmidt [010205 11:15] wrote: > On Mon, Feb 05, 2001 at 12:59:37AM -0800, Alfred Perlstein wrote: > > * Paul D. Schmidt [010204 23:23] wrote: > > > > Are there currently any known bugs with pthread_mutex_init > > > and pthread_cond_init returning 0, but pthread_cond_wait > > > returning EINVAL nonetheless? > > > > Can you provide a code sample to replicate this and specify which > > version of FreeBSD you're using? > > typedef struct cond_tag { > long cond_id; > char *name; > > pthread_mutex_t cond_mutex; > pthread_cond_t sys_cond; > } cond_t; > > void thread_cond_create(cond_t *cond) > { > pthread_cond_init(&cond->sys_cond, NULL); > pthread_mutex_init(&cond->cond_mutex, NULL); > } > > void thread_cond_wait(cond_t *cond) > { > pthread_cond_wait(&cond->sys_cond, &cond->cond_mutex); > } > > pthread_cond_wait() is returning immediately with EINVAL, even though > printf debugging tells me that both the pthread_(cond|mutex)_init > functions returned 0 (which man tells me is success). > > This is on FreeBSD 4.2-RELEASE. 1) 4.2 RELEASE has known pthreads bugs, you should upgrade to -stable. 2) is cond->cond_mutex held when thread_cond_wait() is called? if not I'm pretty sure it needs to be. -- -Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org] "I have the heart of a child; I keep it in a jar on my desk." To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message