This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author kristjan.jonsson
Recipients beazley, dabeaz, flox, kristjan.jonsson, loewis, pitrou, r.david.murray, techtonik, torsten
Date 2010-04-15.17:23:13
SpamBayes Score 1.2781052e-05
Marked as misclassified No
Message-id <1271352196.07.0.0794961864334.issue8299@psf.upfronthosting.co.za>
In-reply-to
Content
David, I urge you to reconsider:
The "emulated" semaphore is broken because it is unfair.  It is clearly a programming error, born out of naivete about how to implement such primitives.  Proper semaphores therefore cannot be implemented using the "exact same mechanism" because proper semaphores are fair, this one isn't.  You do understand why exactly it is unfair, don't you?

Second, with a fair GIL you still get poor performance on multicore with low values of "tickinterval" but at least you get predictable scheduling.  The emulated semaphore is bad in two ways:  Unpredictable scheduling with thread starvation _and_ poor multicore performance.  I don't understand why you prefer having two problems to one.

I also think it is worth investigating when exactly the "emulaton" semaphore became the "standard".  Did something break in the config script at some point?
History
Date User Action Args
2010-04-15 17:23:16kristjan.jonssonsetrecipients: + kristjan.jonsson, loewis, beazley, pitrou, techtonik, r.david.murray, flox, dabeaz, torsten
2010-04-15 17:23:16kristjan.jonssonsetmessageid: <1271352196.07.0.0794961864334.issue8299@psf.upfronthosting.co.za>
2010-04-15 17:23:14kristjan.jonssonlinkissue8299 messages
2010-04-15 17:23:14kristjan.jonssoncreate