Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Thu, 9 Jun 2005 11:57:59 -0400 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: PTHREAD_MUTEX_DEFAULT different for cygwin v.s. linux. Message-ID: <20050609155759.GA29880@trixie.casa.cgf.cx> Reply-To: cygwin AT cygwin DOT com References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.8i On Wed, Jun 08, 2005 at 03:29:46PM -0700, Peter Rehley wrote: >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. FWIW, I've changed the default for PTHREAD_MUTEX_INITIALIZER to PTHREAD_NORMAL_MUTEX_INITIALIZER_NP in CVS. Last night I also tried to implement handling for interrupting mutexes based on Corinna's explanation of what your patch did. Both of these changes are in the current snapshot. 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/