[Python-Dev] Add an optional timeout to lock operations

Jesse Noller jnoller at gmail.com
Wed Nov 18 13:45:42 CET 2009



On Nov 18, 2009, at 5:38 AM, Nick Coghlan <ncoghlan at gmail.com> wrote:

> Antoine Pitrou wrote:
>> Guido van Rossum <guido <at> python.org> writes:
>>> Will locks be interruptible with ^C? That is an oft-requested  
>>> feature
>>> which also wasn't supported at that time; what's the situation
>>> nowadays?
>>
>> They still aren't interruptible. From what I can read it may be  
>> possible to make
>> them interruptible in the POSIX semaphore-based implementation, not  
>> in the POSIX
>> condition variable-based implementation (which is used as a  
>> fallback when POSIX
>> semaphores are not available, but I don't know whether this  
>> fallback is still
>> useful).
>
> I'm pretty sure at least some variants of *BSD still don't have OS  
> level
> semaphores - their lack is the reason multiprocessing doesn't
> necessarily work everywhere that the threading module works (since mp
> needs semaphores in order to work its magic).
>
> Jesse would probably know the gory details.
>
> Cheers,
> Nick.
>

Nick is right, many of the BSDs and FreeBSD up until fairly recently  
did not have named shared semaphore support. Still yet, the behavior  
is broken on some OSes such as OS X which you have to work around.

I wouldn't recommend using them for threading right now, there's an  
assumption that threading "just works" unlike multiprocessing, which  
people understand has caveats.

Jesse


More information about the Python-Dev mailing list