Bonjour,
(Topic d'origine : http://www.developpez.net/forums/sho...d.php?t=486240)
Je me trouve devant un problème de gestion de threads. En effet, j'ai une application (Linux) qui voudrait changer l'heure système. Or ce programme contient plusieurs boost::threads qui sont en pseudo-veille via les lignes suivantes :
Or, que j'utilise les fonctions settimeofday();, system("date -s ..."); ou que je change l'heure dans le système via le gestionnaire, j'obtiens (et c'est logique), un blocage du sleep quand je mets une heure antérieure.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 bool bQuit = false; boost::thread t; boost::xtime xt; while(!bQuit) { { // des choses } xtime_get(&xt, boost::TIME_UTC); xt.nsec += 20000; t.sleep(xt); }
Je voulais savoir s'il existait, dans la bibliothèque boost::thread:: xtime ou dans boost::date_time, des fonctions pour mettre à jour l'heure système sans mettre en péril l'application threadée ?
ou alors existe-t-il un autre moyen de faire dormir mon thread, qui ne prendrait pas en compte l'heure actuelle, mais une sorte de timer... ?
Merci !
EDIT : en attendant, je fais un usleep(20000); ce qui n'est pas très propre vis-à-vis de boost, mais au moins ça bloque pas.
Partager