From 5636e6d9905e15dc89890b05bd6d29c528481e5f Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Mon, 26 Sep 2005 06:21:00 +0000 Subject: [PATCH 1/1] =?utf8?q?M=C3=B3dulo=20para=20tener=20propiedades=20y?= =?utf8?q?=20m=C3=A9todos=20sincronizadas=20Este=20m=C3=B3dulo=20provee=20?= =?utf8?q?una=20clase=20Synchronized=20que=20a=20trav=C3=A9s=20de=20magia?= =?utf8?q?=20de=20metaclases=20crea=20propiedades=20sincronizadas=20utiliz?= =?utf8?q?ando=20mutex.=20Los=20atributos=20sincronizados=20se=20declaran?= =?utf8?q?=20como=20atributos=20de=20clase=20como=20instancias=20de=20Sync?= =?utf8?q?Prop.=20Por=20ejemplo:=20from=20sync=20import=20*=20class=20Sync?= =?utf8?q?Obj(Synchronized):=20=09syncattr=20=3D=20SyncProp("Descripci?= =?utf8?q?=C3=B3n=20del=20atributo")=20o=20=3D=20SyncObj()=20o.syncattr=20?= =?utf8?q?=3D=201=20#=20est=C3=A1=20rodeado=20de=20un=20mutex?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit También se provee un wrapper para métodos que puede usarse como decorator: class SyncObj(Synchronized): @synchronized def syncmethod(self): # Hace cosas o = SyncObj() o.syncmethod() # está rodeado de un mutex -- 2.43.0