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.
[^] # Re: Simple....
Posté par Raphaël G. (site web personnel) . En réponse au message threads periodique. Évalué à 2.
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.