Simple lock

MRAB python at mrabarnett.plus.com
Sat Mar 20 04:38:27 CET 2010


Gabriel Genellina wrote:
> En Fri, 19 Mar 2010 23:31:23 -0300, MRAB <python at mrabarnett.plus.com> 
> escribió:
>> moerchendiser2k3 wrote:
> 
>>>  class SetPointer
>>> {
>>> private:
>>>     void *ptr;
>>>      MY_LOCK lock;
>>>   public:
>>>     void SetPointer(void *p)
>>>     {
>>>         Lock(this->lock);
>>>         this->ptr = p;
>>>     }
> 
>> 3. You're locking, but never unlocking. The sequence should be: lock, do
>> stuff, unlock.
> 
> Just FYI: C++ doesn't have try/finally, and such behavior is usually 
> emulated using a local object. When it goes out of scope, it is 
> automatically destroyed, meaning that the object destructor is called. 
> Whatever you would write in a "finally" clause, in C++ goes into a 
> destructor.
> 
> Of course C++ guys would never say they're "emulating" try/finally, 
> instead they declare RAII as *the* Only and Right Way :)
> 
Lock() doesn't look like a declaration, but a function call (although
it's been a while since I last did C++!).

In the past I've written some C++ code where try..finally... would've
been useful... *sigh*



More information about the Python-list mailing list