Namespaces
Variants

std::experimental::flex_barrier:: arrive_and_drop

From cppreference.net
void arrive_and_drop ( ) ;
(并发技术规范)

到达 flex_barrier 的同步点并将当前线程从参与线程集合中移除。此函数是否阻塞直至完成阶段结束由实现定义。若函数发生阻塞,调用线程可能被选中执行完成阶段。

如果调用线程不在此 flex_barrier 的参与线程集合中,则行为未定义。

arrive_and_drop 的调用与 flex_barrier 完成阶段的开始同步。如果该调用发生阻塞,则完成阶段的结束与从该调用返回同步。

arrive_and_drop arrive_and_wait 的调用永远不会与它们自身或彼此之间引入数据竞争。

异常

不抛出任何异常。

注释

即使每个参与线程都调用了 arrive_and_drop ,完成阶段仍将被执行。

在线程对 flex_barrier 调用 arrive_and_drop 后,即使完成阶段调用的函数对象返回正值,该线程也不能再调用该屏障的任何成员函数(析构函数除外)。

参见

抵达同步点并阻塞
(公开成员函数)