Simple lock

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Fri Mar 19 23:09:46 EDT 2010


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 :)

-- 
Gabriel Genellina




More information about the Python-list mailing list