Por favor necesito ayuda urgente avanzada

Miguel Araujo muchochini en gmail.com
Jue Feb 21 01:23:59 CET 2008


Parece que la cosa ha mejorando haciendo que los hilos sean demonios y no
esperando a la muerte del hijo.

Espero cualquier consejo para tratar esto en el futuro, gracias
           Miguel

El día 20/02/08, Miguel Araujo <muchochini en gmail.com> escribió:
>
> Hola a todos,
>
> Estoy haciendo una práctica desde hace un par de semanas cuya entrega es
> para este viernes y casi está todo planteado. Ya van varias preguntas que me
> ha respondido la gente y me han ayudado a progresar, muchas gracias.
> Mi problema es sencillo de explicar. Tengo un proceso que crea diversos
> hilos, estos hilos tienen semáforos, sockets con otros procesos... tela! El
> problema es que como leí que los hilos no pueden capturar interrupciones de
> teclado. Hice el siguiente apaño.
>
> El proceso padre hace un fork y se queda esperando .wait() al hijo, si ve
> que se produce un CTRL^c manda al hijo una señal SIGQUIT para que cierre,
> porque él se va a morir.
>
> El hijo mientras tanto a creado unos 7 u 8 threads de media. Tiene una
> lista con "punteros" a esos hilos para poder hacer .join() a cada uno. El
> problema es que los hilos no se mueren porque están en llamadas bloqueantes
> de sockets. Así que con un signal.signal seteo un handler que cierra los
> sockets y luego se queda haciendo joins para después cuando acabe hacer un
> exit(0) .Los hilos detectan que los sockets se han cerrado por medio de la
> excepción EOFError y hacen un exit en tal caso.
>
> El problema es que hay hilos que se mueren tarde, y después de liberar la
> shell al pulsar una tecla otro hilos avisa de que ha muerto. Siento no poder
> ser más claro, pero la concurrencia en Python se me está atravesando.
> En resumen algún consejo sobre cómo conseguir cerrar el proceso
> decentemente, algún truco o algo por el estilo.
>
> Gracias por leerlo, Un saludo
>         Miguel
>
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es