nORKy a écrit :
Bonjour,
Actuellement, un programme avec un thread unique.
Ce programme utilise select sur une socket ouverte.
Ce programme possède des modules (un peu comme apache quoi, des .so qu'on peut charger comme on vuet) et chaque module est appelé en fonction de ce que recoit la socket, et chaque module peut demandé d'envoyé qqchose dans la socket (j'utilise un tampon, et lorsque la socket etre prete en écriture, je dépile un élément du tanpon et ainsi de suite..)
Je voudrais rajouté la possibilité à ces modules, d'exécuté une fonction toute les X secondes.
Ma question est : comment ?
Sachant que si j'utilise une fonction telle que sigalarm, il faut que je sois en mesure de savoir pour quel module je vais travailler (pour pouvoir récuper les infos du module, or sigalarm ne prends pas de void *). Et il faut aussi que globalement (je suis pas à la ms pret), le temps doit être respecter (sachant que le processus, il s'occupe également de la socket)
Donc, sigalarm était-elle la seule solution ?
Ne serait-il pas interessant d'utiliser le timeout du select ?
autre solution ? un thread dédié pt etre ?
Merci
|