Mail Archives: cygwin/2005/07/22/13:12:08
>> From: "Dave Korn" <dave DOT korn AT artimi DOT com>
>> To: <cygwin AT cygwin DOT com>
>> Date: Fri, 22 Jul 2005 11:47:40 +0100
>> Subject: RE: Known issues with Pthreads in 1.5.18?
>> The default type of mutex just got changed, from error checking, to
>> normal. If your code is setting up a default mutex and then one thread
>> attempts to recursively take the mutex, it will now deadlock where before it
>> would have succeeded. Or it may be possible your code is unlocking the
>> mutex more times than it takes it, which would probably show the same
>> symptom. See the thread starting at:
>>
>> http://www.cygwin.com/ml/cygwin/2005-05/msg01298.html
>>
>> and the announcment for 1.5.18
>>
>> http://www.cygwin.com/ml/cygwin-announce/2005-07/msg00001.html
>>
>> in particular the line that says
>>
>> "cgf: Change default value for PTHREAD_MUTEX_DEFAULT to PTHREAD_NORMAL."
>>
>>
>> cheers,
>> DaveK
Unfortunately that seems to have borked Python 2.4. I found that out the hard way after returning from a week offline, I just upgraded everything to 1.5.18 and as a result dequeuing operations stopped blocking and started getting "temp. unavailable" errors. No, I didn't bother saving the messages nor the configuration. Going back to older versions was a huge pain (at least when using setup.exe because an accidental/exploratory click could cause a newer version of a package to be selected which would prereq 1.5.18 again.. anyways)...
Since I don't have a second machine to infect with 1.5.18, I cannot directly re-produce this. My code used Python threads, one consumer, one producer. Instead of the consumer blocking, it would get an error trying to get a mutex, "resource temporarily unavailable." I have no idea if this is a bug in the python Queue code, python threading, or just an unexpected side-effect of changing mutex behaviour. Scanning the archives it didn't seem obvious that anyone else had seen this...
Since I'm not in a position to "fix this myself", I can offer to exchange toy python programs with someone who can, in an effort to track down where the bug is originating.
Thanks,
--Doug
--
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/
- Raw text -