[pyar] Timeouts para codigo de terceras partes: PyThreadState_SetAsyncExc?

Andres Riancho andres.riancho en gmail.com
Lun Ene 5 20:30:39 ART 2015


Alejandro,

On Mon, Jan 5, 2015 at 7:36 PM, Alejandro Santos <listas en alejolp.com> wrote:
> 2015-01-05 20:58 GMT+01:00 Andres Riancho <andres.riancho en gmail.com>:
>>
>>     La pregunta entonces es... que otras soluciones tengo a este problema?
>>
>
> import multiprocessing
> import time
>
> def exec_with_timeout(f, args, timeout):
>     p = multiprocessing.Process(target=f, args=args)
>     p.start()
>     p.join(timeout)
>     if p.is_alive():
>         p.terminate()
>
> def bad_func(t):
>     while True:
>         time.sleep(t)
>
> exec_with_timeout(bad_func, (5.0, ), 0.1)

    Gracias por la buena propuesta, despues de enviar el email estuve
viendo eso y creo que en una gran cantidad de casos sirve pero... a mi
no me va a servir ya que la respuesta de la libreria es un objeto que
NO se puede serializar, por lo que no lo puedo pasar entre el
subproceso (multiprocessing.Process) y el proceso principal.

    Alguna idea de como hacer un workaround de eso? Estuve leyendo un
poco sobre multiprocessing.Namespace, pero no estoy seguro, deberia
probarlo.

>
> --
> Alejandro Santos
> _______________________________________________
> 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



-- 
Andrés Riancho
Project Leader at w3af - http://w3af.org/
Web Application Attack and Audit Framework
Twitter: @w3af
GPG: 0x93C344F3


More information about the pyar mailing list