std::stop_callback<Callback>::~stop_callback

来自cppreference.com
 
 
并发支持库
线程
(C++11)
(C++20)
(C++20)
this_thread 命名空间
(C++11)
(C++11)
(C++11)
原子类型
(C++11)
(C++20)
原子类型的初始化
(C++11)(C++20 中弃用)
(C++11)(C++20 中弃用)
原子操作的自由函数
原子标志的自由函数
内存序
互斥
(C++11)
通用锁管理
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
条件变量
(C++11)
信号量
闩与屏障
(C++20)
(C++20)
future
(C++11)
(C++11)
(C++11)
(C++11)
 
std::stop_callback
成员函数
stop_callback::~stop_callback
推导指引
 
~stop_callback();
(C++20 起)

销毁 stop_callback 对象。

*this 拥有带关联停止状态的 stop_token ,则从它解除注册。

若同时在另一县城上调用回调函数,则析构函数直至回调函数调用为止都不会完成。若在调用析构函数的同一线程上正在调用回调函数,则析构函数会不等待回调调用完成就返回(见注解)。

注解

stop_callback 析构函数被设计为阻止竞争条件与死锁。若另一线程同时调用回调,则析构函数不能返回直至它完成,否则函数对象能潜在地在执行时被销毁。不要求回调函数自身既不可复制亦不可移动————它在注册后就生存于 stop_callback 对象自身中。

另一方面,若调用析构函数的当前线程是与调用回调相同的线程,则析构函数不能等待,否则会出现死锁。同一线程在调用 stop_callback 的回调函数时析构它是可能且合法的,因为回调函数自身可能直接或间接销毁 stop_callback