Linux - Programacion Hilos

   
Vista:

Programacion Hilos

Publicado por Miguel Angel (4 intervenciones) el 29/09/2009 17:49:44
Hola a todos!
Tengo una aplicación que lanza varios hilos que hacen una serie de tareas sobre un recurso compartido. Tenia creado de anteriores aplicaciones un controlador para terminar la ejecucion de la aplicación , mediante la pulsacion de Ctrl+C. El problema es que para la aplicación con hilos este controlador no funciona correctamente y la aplicación no termina, por lo que para terminar debo hacer un killall y algunas funciones que se ejecutaban cuando antes hacia Ctrl+C ya no se pueden ejecutar.
¿Sabria alguien explicarme cual es la mejor forma para hacer terminar una aplicación con varios hilos?

Muchas gracias de antemano.

Saludos
Miguel Angel
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Programacion Hilos

Publicado por Tom (339 intervenciones) el 30/09/2009 17:18:52
Pues no es fácil, ya que los threads pueden tener status de no-cancelables.

Creo que la mejor manera es capturar las señales en el thread principal para poder hacer pthread_cancel() sobre las secundarias.

En el man de pthread_cancel() tienes un ejemplo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programacion Hilos

Publicado por Miguel Angel (4 intervenciones) el 01/10/2009 13:23:46
Perdona, pero no entendi bien tu respuesta.
Cuando llamo al pthread_cancel()? ¿cuando haga ctrl+c?
Ademas, ya probe con casi todas las funciones de parada de hilos de la clase pthread y no funcionó.
Una solución que busqué fue que cuando pulsará ctrl+c se activara una variable estatica que hiciera que los hilos salieran del bucle de ejecucion...sin embargo esta solución funciona a veces si, avecs no...
WEno, gracias por intentarlo.
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar