w***@gmail.com
2005-05-28 15:49:13 UTC
Estoy realizando un programa que crea varios hilos para realizar
diversas tareas de forma concurrente. El programa tiene que permanecer
un tiempo concreto (50 segundos) en ejecución y transcurrido ese
tiempo, el proceso principal debe matar a los hijos y finalizar.
Es decir, el programa básicamente:
crea los hilos necesarios
duerme 50 segundos
mata a los hilos
termina
Hay una función de la api de win32, TerminateThread(handle) que acaba
con un proceso, pero da problemas al liberar la memoria, es demasiado
abrupto. Me pregunto,
¿Existe otra función aparte de esta que sirva para matar procesos
"suavemente"? (como mandar la señal SIGTERM en unix, más o menos)
También he pensado en que se podría mandar algún tipo de señal a
los hilos para que mueran. En unix eso se haría registrando una
manejadora, pero no sé cómo podría hacerlo en Windows...
En fín, espero que a pesar de ser un tema tan específico alguien
pueda ayudarme. Cualquier pista o ayuda será bien recibida.
Gracias a todos...
diversas tareas de forma concurrente. El programa tiene que permanecer
un tiempo concreto (50 segundos) en ejecución y transcurrido ese
tiempo, el proceso principal debe matar a los hijos y finalizar.
Es decir, el programa básicamente:
crea los hilos necesarios
duerme 50 segundos
mata a los hilos
termina
Hay una función de la api de win32, TerminateThread(handle) que acaba
con un proceso, pero da problemas al liberar la memoria, es demasiado
abrupto. Me pregunto,
¿Existe otra función aparte de esta que sirva para matar procesos
"suavemente"? (como mandar la señal SIGTERM en unix, más o menos)
También he pensado en que se podría mandar algún tipo de señal a
los hilos para que mueran. En unix eso se haría registrando una
manejadora, pero no sé cómo podría hacerlo en Windows...
En fín, espero que a pesar de ser un tema tan específico alguien
pueda ayudarme. Cualquier pista o ayuda será bien recibida.
Gracias a todos...