-
Chronomètre
Bonjour,
Je cherche le meilleur moyen d'implémenter un compte à rebours qui vari entre 10secondes et 1minutes. Ce compte en question DOIT être intérrompu avant sa fin si par exemple la commande X est reçu via une socket.
Que me proposeriez vous?
Merci
-
pour ca tu peux gerer une boucle de sleep de 1 seconde et gerer les evenement avec trap par exemple.
pour trap faudra trouver une astuce parceque normalement il utilise les signaux systeme donc peut etre lancer un signal au start de X permeterai de detecter le lancement de X :aie: mais bon c'est un peu usine a gaz mais ca devrai fonctionner.
-
le seul moyen viable est de passer par un timer qui genere un signal de type SIGALARM.
parametrable, et tu pourras poser autant de gestion de signaux que tu desires pour controler l'arret ou la relance du timer.
c'est la fonction "setitimer" voir man, qui permet de gerer ceci de maniere standard (POSIX) , associé a la gestion de signaux.
-
Bonjour,
Je m'excuse j'ai oublié de spécifier que dans mon application j'ai des threads (nombre variable) et chaque thread a son propre compte à rebours. Or les signaux s'envoient à tous le processus ce qui ne m'arrange pas trop.
Pour avancer unpeu plus je vais reformuler ma question pour avoir une réponse OUI/NON :p.
Y'aurait-il un moyen meilleur que select() pour implémenter ceci?
Merci encore
-
si si ca peut fonctionner avec les signaux, juste qu'il te faut identifier qui fait quoi.
puis quel signal destiné a qui.
regarde la fonction setitimer, elle chaque "timer" peut etre identifié.
-