On 2/1/06, William A. Rowe, Jr. <[EMAIL PROTECTED]> wrote:
> WAIT_ABANDONED, according to these notes, is a signal that the owning thread
> has closed, and IIUC Win32 kernel will choose a new owner as a 'next step'.
>
> http://issues.apache.org/bugzilla/show_bug.cgi?id=38410
>
> 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.

Reply via email to