[pyar] Acceso a objetos desde multiples threads + ZODB

Lautaro Woites lauchapc87 en gmail.com
Mar Mayo 6 14:45:26 ART 2014


laucha


El 5 de mayo de 2014, 20:41, Julian Agustin Cardonnet
<jcardonnet en gmail.com>escribió:

> Hola Laucha,
>
Hola Julián

> Yo tampoco use nunca ZODB asi que con eso no te puedo ayudar... Lo que si,
> queria hacerte un comentario sobre el uso del mutex en el ejemplo que
> pusiste:
>         mutex.aqcuire()
>         e.name = "pepe"
>         mutex.release()
>
> Si lo pones asi y el codigo de la seccion critica tira una excepcion, el
> mutex nunca se va a liberar asi que el resto de los hilos se van a empezar
> a bloquear.
>
> La 1ra opcion (y mas artesanal) para evitar el problema es meter todo en
> un bloque try/catch/finally
>
>     mutex.acquire()
>     try:
>         e.name = "pepe"
>     finally:
>         mutex.release()
>
> La otra (y a gusto mi mejor) es usar el context manager que implementan
> los mutex via la sentencia with:
> with mutex:
> e.name = "pepe"
>
> Con el with, si algo falla el mutex se libera automaticamente y ademas no
> te arriesgas a "olvidarte" de liberar el mutex. Algunos tambien opinarian
> que el codigo queda mas limpio...
>
> Capaz que todo esto ya lo sabias y pero en una de esas alguien mas lee
> esto y se evita dolores de cabeza y tiempo perdido cazando bugs de
> concurrencia que son una pesadilla.
>

Gracias por la correción, ya lo sabía, pero por alguna razon que estoy
pensando y no encuentro, mala costumbre supongo, siempre los usé sin el
with o el finally. A menos que tenga un problema y revise el código. Una
mala constumbre menos :)

Gracias y Saludos

>
> Saludos,
> Julian
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140506/49ad9546/attachment.html>


More information about the pyar mailing list