Как называется это свойство асинхронных действий. (увеличить asio)
Свойство можно описать так:если действие отменяется, оно 'Обработчик s гарантированно будет выполнен с ошибкой.
Например,повышение :: ASIO :: deadline_timer Безразлично»т это свойство, как описано вЗамечания раздел документации для deadline_timer :: cancel, Таким образом, возможно, что даже если вы отмените операцию ожидания на таймере, его обратный вызов будет выполнен без ошибок.
С другой стороны, свойство верно для сокетов asio (по крайней мере, я на это надеюсь :), поскольку в документации нет таких замечаний).
РЕДАКТИРОВАТЬ: псевдокод, демонстрирующий отсутствие этого свойства в таймеры крайнего срока:
1# User calls timer.async_wait with a handler H which is to be
executed when the action finishes.
2# Time passes.
3# Timeout has been reached, asio internally inserts the handler H into
a queue for later execution, but with error code indicating success.
User is unaware of when this step takes place.
4# User calls cancel on the timer, thus would expect the handler to be
executed with an error code indicating failure.
5# Asio takes the handler H from the queue and executes it with error
code indicating success as set in the step #3.
Обойти эту проблему легко, просто установив логический флаг на шаге № 4, а затем отметив его на шаге № 5, так что это не проблема.