boost::asio::basic_waitable_timer `取消` 行为

boost::asio::basic_waitable_timer `cancel` behavior

假设有 asiodeadline_timer 或类似的,它过期并调用回调。在调用期间,当回调仍为 运行 时,将调用 cancel。 问题是 cancel 会阻塞直到回调完成?

不,取消不会阻塞,也不会等待任何处理程序完成。

如果访问来自不同线程,则您有责任同步对计时器实例的访问。

这里记录了有限的线程安全: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