[Python-Dev] Re: 2.4a2, and @decorators

Kevin Jacobs jacobs at theopalgroup.com
Wed Aug 4 18:35:56 CEST 2004


Phillip J. Eby wrote:

> At 06:09 PM 8/4/04 +0200, Heiko Wundram wrote:
>
>> class x:
>>         synchronized = threading.Synchronizer()
>>
>>         @synchronized
>>         def y(self):
>>                 <do something>
>>
>> When's threading.Synchronizer coming (just a threading.(R)Lock with 
>> an extra
>> __call__ which prepares a method for synchronization with this lock)? I
>> already have some patches which implement module/class/instance 
>> locking using
>> just a simple RLock and the decorator syntax, and I'd gladly sign 
>> over the
>> patches to the PSF. ;)
>
>
> Note that your example, if I understand it correctly, creates a single 
> lock for all instances of class 'x', rather than for individual 
> instances of 'x'.  This is not what I'd normally expect from a 
> 'synchronized' method.


Indeed it would, if implemented as described.  However, one
could use the same syntax and implement a Synchronizer
that implemented locks at the instance level.  Dirty tricks would
be involved, but it is possible.  (If I _ever_ get some free time,
I will take a stab at doing it, too.  Sounds like a good cookbook
recipe)

-Kevin


More information about the Python-Dev mailing list