jak można było przeczytać na stronie:boost :: deadline_timer może zawieść, gdy zegar systemowy jest modyfikowany
https://svn.boost.org/trac/boost/ticket/3504
deadline_timer że limity czasu okresowo i który jest realizowany z wykorzystaniem deadline_timer :: expires_at() (jak na przykład w Boost Timer Tutorial, 3th example) prawdopodobnie zakończy się niepowodzeniem, jeśli czas systemowy zostanie zmodyfikowany (na przykład za pomocą polecenia date, jeśli system operacyjny to Linux).
Czy istnieje prosty i właściwy sposób wykonania tej operacji teraz, używając funkcji Boost? Nie chcę używać deadline_timer :: expires_from_now(), ponieważ mogłem sprawdzić, czy jest on mniej dokładny niż "ręcznie" aktualizując czas wygaśnięcia.
Jako rozwiązanie tymczasowe decyduję się, przed ustawieniem nowej wartości expires_at, obliczyć przedział czasu między teraz() i expires_at(). Jeśli jest to więcej niż dwukrotność opóźnienia okresowego, to wyjątkowo korzystam z funkcji expires_from_now() w celu ponownego zsynchronizowania z nowym czasem bezwzględnym.
Tymczasowe rozwiązanie, dobra gra słów :) – Thomas