boost :: asio :: basic_waitable_timer `отмена` поведения - PullRequest
0 голосов
/ 26 июня 2018

Предположим, есть asio deadline_timer или аналогичный, срок его действия истекает, и вызывается обратный вызов. Во время вызова и во время выполнения обратного вызова вызывается cancel. Вопрос в том, будет ли cancel блокироваться до завершения обратного вызова?

1 Ответ

0 голосов
/ 27 июня 2018

Нет, отмена не блокирует, а также не ожидает завершения работы каких-либо обработчиков.

Вы несете ответственность за синхронизацию доступа к экземпляру таймера, если доступ осуществляется из разных потоков.

Ограниченная безопасность потоков документирована здесь: https://www.boost.org/doc/libs/1_67_0/doc/html/boost_asio/reference/basic_waitable_timer.html#boost_asio.reference.basic_waitable_timer.thread_safety

...