PTHREAD_MUTEX_DEFAULT different for cygwin v.s. linux.

Peter Rehley peter@rehley.net
Thu Jun 9 02:52:00 GMT 2005


On Jun 8, 2005, at 2:59 PM, Thomas E. Zerucha wrote:

> I have a problem similar to that of:
>
> http://sourceware.org/ml/cygwin/2005-05/msg01400.html
>
> I have an old system that I'm trying to port that uses pthreads, but 
> doesn't set the attribute, and a non-owner thread will destroy the 
> thread in a deallocate routine, but this won't happen (it won't 
> actually destroy the thread).
>
> The problem is that (in pthread.h) PTHREAD_MUTEX_DEFAULT is .._NORMAL 
> on linux, the system was originally written for.  It works but 
> eventually dies when it runs out of threads or mutexes or something 
> since it can't recycle.  PTHREAD_MUTEX_DEFAULT is .._ERRORCHECK on 
> cygwin.
>
> It would be painful to add a whole section to create an attribute 
> structure just to set this to be the same as linux.
If you look at the test case you will see a line that says
mutex=PTHREAD_MUTEX_INITIALIZER;

This causes the program to use the default (ERRORCHECK) mutex.  To get 
a normal mutex, you can use
mutex=PTHREAD_NORMAL_MUTEX_INITIALIZER_NP;

However, in the test case when NORMAL is used, the mutex never gets 
unlocked because the signal SIG_CHLD doesn't get to the parent.

Hopefully that is something that you can use.
>
> I can't seem to build the cygwin1.dll so I could replace it (are there 
> any instructions on how to create an identical copy to the release?  I 
> didn't see any on the FAQ, and ./configure;make generates a file 8x 
> larger, and it complained about something with the address).
>
You need to provide more information than this.  Based on what you 
said, you didn't follow the instructions in the FAQ; and yes there are 
instructions for building the cygwin1.dll in the FAQ


> I think just changing it in the pthread.h and recompiling the dll will 
> fix it.  Note that the attribute is invisible since you need not 
> bother with the attr structure and parameter when doing defaults.
>
>
> --
> 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/
>
>
>
Enjoy,
Peter
-------------------------------
A Møøse once bit my sister


--
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