This is the mail archive of the
mailing list for the Cygwin project.
Re: Re: 1.5.25-15: pthread_join deadlocks
- From: Ryan Johnson <ryanjohn at ece dot cmu dot edu>
- To: cygwin at cygwin dot com
- Date: Fri, 20 Nov 2009 11:49:40 +0100
- Subject: Re: Re: 1.5.25-15: pthread_join deadlocks
- References: <20091119124405.GF29173@calimero.vinschen.de>
Corinna Vinschen wrote:
On Nov 19 12:29, Ryan Johnson wrote:Ah, that's good to know. I'll try it out when I get a few minutes.
Meanwhile, firing up an extra thread at program start, and having it
just block on a cond var nobody will ever signal, seems to avoid the
I'm hitting a deadlock with cygwin pthreads when joining on a
short-lived thread -- for me the second such thread creation will
almost never return. It looks *exactly* like a problem that others
noticed as far back as early 2005 , and from the output of
strace on the test case (below) the culprit is almost certainly a
racy optimization in __cygwin_lock_* for which a patch was submitted
six months ago .
As of today my cygwin distribution is completely up to date. Any
hope of an update coming out soon?
The update will be Cygwin 1.7. You testcase works fine for
me on Cygwin 1.7, so maybe you should try this path. See
Out of curiosity, how much did removing the racy optimization hurt
performance? The patch just yanked it completely iirc. An alternative
might be to have the main thread check for single-thread environment
only at acquire time, and then release only if it acquired (the latter
is probably a good idea regardles...).
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple