This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PTHREAD_MUTEX_DEFAULT different for cygwin v.s. linux.



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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]