[PATCH] default to normal pthread mutexes

Corinna Vinschen corinna-cygwin@cygwin.com
Mon Jul 14 09:45:00 GMT 2014

Hi Yaakov,

On Jul 13 18:38, Yaakov Selkowitz wrote:
> Defaulting to ERRORCHECK mutexes (with the various stringencies it implies)
> does not match the behaviour on Linux, where NORMAL mutexes are the default.
> I have been testing this locally for some time, and I believe it affects a
> lot of software.  Patch and STC attached.
> Yaakov

> 2014-07-13  Yaakov Selkowitz  <yselkowitz@...>
> 	* thread.cc (pthread_mutex::pthread_mutex): Change default type
> 	(pthread_mutexattr::pthread_mutexattr): Ditto.
> 	(pthread_mutex_unlock): Do not fail if mutex is a normal mutex
> 	initializer.
> 	* include/pthread.h (PTHREAD_MUTEX_INITIALIZER): Redefine as

I checked this in with a small addition.  While testing I found that
Cygwin's pthread_mutex_unlock returned EINVAL if the mutex is of the
PTHREAD_MUTEX_ERRORCHECK type and the mutex wasn't owned by any thread
(as in your STC),  Linux returns EPERM in this case.  I fixed that.


Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-patches/attachments/20140714/c2375aac/attachment.sig>

More information about the Cygwin-patches mailing list