В третьем уроке по Boost asio есть строка, в которой показано, как обновить таймер и как предотвратить его смещение. Строка следующая:
t->expires_at(t->expires_at() + boost::posix_time::seconds(1));
Возможно, это я, но я не смог найти документацию по второму использованию e xpires_at()
без параметров. expires_at(x)
устанавливает новый срок действия, отменяя все ожидающие обработчики завершения. Так предположительно expires_at () что, время возврата последнего истечения? Таким образом, добавляя одну секунду, если должно быть какое-то количество мс, скажем, n мс, то оно по сути будет «вычтено» из следующего истечения, поскольку учитывается время? Что произойдет, если в этом примере время выполнения этого обработчика будет больше 1 секунды? Срабатывает ли сразу?