• # Simple....

    Posté par  . Évalué à 2.

    Tu crees un thread qui fait ca :

    while(1)
    {
    Sleep(xxxx)
    if (thread_dois_s_arreter) //a toi de voir comment signaler ca
    return;
    //ici tu fais ce que le thread est sense faire
    }
    • [^] # Re: Simple....

      Posté par  . Évalué à 1.

      Pitié :« censé ».

      Ça fait deux posts de suite qui contiennent la même erreur !
      • [^] # Re: Simple....

        Posté par  (site web personnel) . Évalué à 2.

        yep, c'est tout de suite plus sensé ;-)
      • [^] # Re: Simple....

        Posté par  . Évalué à 1.

        J'ai une excuse : je suis suisse, pas francais :+)

        Ok, je -->[]
        • [^] # Re: Simple....

          Posté par  (site web personnel) . Évalué à 2.

          Je pense qu'il ne devrais pas utiliser du sleep...

          Un select avec un timeout serait plus instruit je pense.

          struct timeval tv;

          while(1)
          {
          /* Pendant 5 secondes maxi */
          tv.tv_sec = 5;
          tv.tv_usec = 0;
          select(0, NULL, NULL, NULL, &tv);
          /* Si condition tu sorts */
          if (condition)
          return 0;
          /* Ton code ici */
          }

          La nuance est que si il reçoit un sigkill ou autre son sleep va pas s'interrompre avant d'être vraiment finis.

          Alors que le select finira avant.

          Enfin j'avais vu ça y a deux ans, je retrouve plus le code donc je sais pas trop comment j'avais fait pour pas me taper le timeout du sleep lorsque le signal de sortie est reçu.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.