ya esta el tema del cuelgue...
en vez de join hago un detach del thread de la consola y el programa corta bien
  ----- Original Message ----- 
  From: John Knight 
  To: Una lista para consultas de programación 
  Sent: Monday, October 15, 2007 7:03 PM
  Subject: Re: [Prog] problema con pthread


  si tenes razon
  pero en este caso estoy trabajando con muchos hilos, dos de los cuales son
     +)uno el de la consola para la X
     +)otro que hace un procesamiento
  el main deberia terminar cuando se aborta o cuando se termine el proceso, por 
eso necesito el while en el main
  el tema es que el getchar es bloqueante y si pongo eso en el main estoy frito

      thConsola.run();
      thSimulacion.run(); 
      while ((!thConsola.getCerrar()) && (!thSimulacion.getTerminado)) {
      }
      thConsola.stop(); 
      thSimulacion.stop(); 
      thConsola.join(); 
      thSimulacion.join(); 

  tengo otra duda
  recien probando esto, cuando finaliza el thread de procesamiento se cuelga 
con el abortar xq el getchar es bloqueante
  hasta ahora lo que tenia era en la clase Thread el stop que como dije antes 
es para avisar que deberia terminar "de forma elegante", o sea q  pare cuando 
pueda...
  pero en este caso, deberia agregar un metodo en Thread que sea kill() por 
ejemplo, no?
  pero el tema no se como hacer para parar el thread de forma abrupta... 
  estaria bien hacer esto?
  gracias Leandro por tus respuestas
  saludos
  PD: deberia tener un sleep(1) el while del main?
    ----- Original Message ----- 
    From: Leandro Fernández 
    To: Una lista para consultas de programación 
    Sent: Monday, October 15, 2007 6:20 PM
    Subject: Re: [Prog] problema con pthread


    No, simplemente no deberías usar ese while si lo único que vas a hacer ahí 
es esperar al otro thread. Nuevamente, vos decís que hay otros threads pero 
parece que el principal sólo espera a uno de los threads. El de consola. Eso no 
está bien. En todo caso si tenés threads trabajando y el principal no tiene 
nada que hacer, resolvé el tema de la consola en ese mismo thread. 

    En todo caso en lugar de un while deberías hacer join() del thread 
directamente. Dado que es ese thread el que determina el final de la 
aplicación. Pero eso no tiene ningún sentido. Se resuelve en un sólo thread.

    Tal vez sería bueno que diagrames los threads que tenés y qué función 
cumple cada uno. Luego te vas a dar cuenta que si un thread lanza a otro y se 
queda a esperar que ese termine, eso se simplifica a un sólo thread.

    Distinto sería lanzar N threads y esperar que todos terminen para salir de 
la aplicación.


    On 10/15/07, John Knight < [EMAIL PROTECTED]> wrote: 



      agregando una duda...
      cuando hago

          thConsola.run(); //LINEA 28 de client_main.cpp
          while (!thConsola.getCerrar()) {
          }

      deberia tener un sleep(1) adentrodel while para que no consuma tanta CPU?

      grax de nuevo por la info :D
      saludos




----------------------------------------------------------------------------


    _______________________________________________
    Lista de correo Programacion.
    [email protected]
    http://listas.fi.uba.ar/mailman/listinfo/programacion



----------------------------------------------------------------------------


    No virus found in this incoming message.
    Checked by AVG Free Edition. 
    Version: 7.5.488 / Virus Database: 269.14.12/1072 - Release Date: 
15/10/2007 05:55 p.m.



------------------------------------------------------------------------------


  _______________________________________________
  Lista de correo Programacion.
  [email protected]
  http://listas.fi.uba.ar/mailman/listinfo/programacion



------------------------------------------------------------------------------


  No virus found in this incoming message.
  Checked by AVG Free Edition. 
  Version: 7.5.488 / Virus Database: 269.14.12/1072 - Release Date: 15/10/2007 
05:55 p.m.
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a