Hola,<br><br><br>pregunta algo complicada de expresar, pero mas o menos el 'subject' lo dice todo. <br>Estoy buscando una forma de poder matar la ejecucion de funciones y/o metodos de clases cuando se produce un timeout. <br>
He buscado algo en google, y hay algunas soluciones interesantes (como usar signal), pero ninguna me llega a funcionar del todo. <br><br>Mis dos problemas fundamentales son:<br><br>- tiene que funcionar con python2.4 standard, sin librerias 3rd-party<br>
- tiene que funcionar incluso cuando el metodo a matar pertenece a una clase heredada de threading.Thread.<br><br>El segundo requisito imposibilita usar signal. <br>Me ha soltado un contundente:<br><br> ValueError: signal only works in main thread<br>
<br><br>He intentado tambien ejecutar la funcion/metodo en otro thread, y pasar el valor del timeout a join(). <br>Sin embargo eso no parece matar la ejecucion de codigo en cuestion. <br>Efectivamente, parece que se llama a join() antes de que la ejecucion termine, pero esta sigue su camino en el background, no parece que join() realmente la haya matado.<br>
<br>Alguien conoce una solucion para matar (de verdad) la ejecucion de funciones y metodos, compatible con threads?<br><br><br>Muchas gracias por adelantado.<br>Jose<br><br>P.S. perdon por la falta de tildes.<br><br>