[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