pthreads, cygwin and pthread_mutex_lock not blocking

Christopher Faylor cgf-no-personal-reply-please@cygwin.com
Sat May 28 17:45:00 GMT 2005


On Fri, May 27, 2005 at 04:35:39PM -0700, Peter Rehley wrote:
>On May 27, 2005, at 1:28 PM, Christopher Faylor wrote:
>
>>On Fri, May 27, 2005 at 10:57:34AM -0700, Peter Rehley wrote:
>>>I'm trying to use pthread in cygwin, and I'm expecting the function
>>>pthread_mutex_lock to block when used.  However it is returning error
>>>45 (EDEADLK).    I'm using a static initializer for the thread so the
>>>mutex is type PTHREAD_MUTEX_DEFAULT.
>>>When I look through the pthread code I see that PTHREAD_MUTEX_DEFAULT
>>>is set to PTHREAD_MUTEX_ERRORCHECK,
>>>When I do the same on linux or soloris, the pthread_mutex_lock blocks,
>>>and looking in the pthread.h file on those systems see that  the
>>>default is set to PTHREAD_MUTEX_NORMAL.
>>>
>>>Why is cygwin using PTHREAD_MUTEX_ERRORCHECK as the default?  And what
>>>problems might occur if PTHREAD_MUTEX_DEFAULT is set to
>>>PTHREAD_MUTEX_NORMAL?
>>
>>Why not just try it and report the results?
>Done.  Hangs at WaitForSingleObject.

Can you provide a STC(tm) (simple test case) which demonstrates the
problem both with and without PTHREAD_MUTEX_ERRORCHECK?

cgf

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list