Return-Path: Delivered-To: apmail-apr-dev-archive@www.apache.org Received: (qmail 96696 invoked from network); 1 Feb 2006 18:15:09 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 1 Feb 2006 18:15:09 -0000 Received: (qmail 35133 invoked by uid 500); 1 Feb 2006 18:15:07 -0000 Delivered-To: apmail-apr-dev-archive@apr.apache.org Received: (qmail 35101 invoked by uid 500); 1 Feb 2006 18:15:07 -0000 Mailing-List: contact dev-help@apr.apache.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Id: Delivered-To: mailing list dev@apr.apache.org Received: (qmail 35083 invoked by uid 99); 1 Feb 2006 18:15:07 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Feb 2006 10:15:07 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: domain of trawick@gmail.com designates 64.233.162.206 as permitted sender) Received: from [64.233.162.206] (HELO zproxy.gmail.com) (64.233.162.206) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Feb 2006 10:15:05 -0800 Received: by zproxy.gmail.com with SMTP id z31so200027nzd for ; Wed, 01 Feb 2006 10:14:45 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=VwRshniuEH2vT0Vp+Fu/1GKxF3wY5TUpQSpX5268RKvHfK4w9REjLUCFA7qAWWqvKHZ84XKTlI1DCE+3IZ55QFFIJCdEf/drImcfh2bMMp1TzyIuvkKq4sXk/Oi0gVY+YreHBEEk6lPB8DuvQhqe3lb2BJxsRQjHkqOWMVxdK7E= Received: by 10.37.20.13 with SMTP id x13mr3388911nzi; Wed, 01 Feb 2006 10:14:44 -0800 (PST) Received: by 10.36.74.5 with HTTP; Wed, 1 Feb 2006 10:14:44 -0800 (PST) Message-ID: Date: Wed, 1 Feb 2006 13:14:44 -0500 From: Jeff Trawick To: dev@apr.apache.org Subject: Re: One bug to close on win32; WAIT_ABANDONED In-Reply-To: <43E0F717.4080904@rowe-clan.net> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline References: <43E0F717.4080904@rowe-clan.net> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N On 2/1/06, William A. Rowe, Jr. wrote: > WAIT_ABANDONED, according to these notes, is a signal that the owning thr= ead > has closed, and IIUC Win32 kernel will choose a new owner as a 'next step= '. > > http://issues.apache.org/bugzilla/show_bug.cgi?id=3D38410 > > What happens on unix when the owner 'dies'? in general: kernel picks a new owner unbeknownst to us: exception: with cross-process pthread mutexes, the ownership is toast forever and ever, thus waiters on the mutex are hung exception to exception: with cross-process pthread mutexes on Solaris 8 and above, APR uses a non-portable API which results in another thread seeing a non-portable return code, and then APR does the magic handshake with the kernel and returns APR_SUCCESS to the caller > Can we map this to some consistent results from the apr call to >apr_proc= _mutex_[try]lock()? If the caller's explanation of WAIT_ABANDONED is correct, then the caller's suggested loop looks good for apr_proc_mutex_lock(). I didn't realize there was apr_proc_mtuex_try_lock(). That should return the didn't-get-the-lock retcode.