std::experimental::flex_barrier:: arrive_and_drop
|
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
后,即使完成阶段调用的函数对象返回正值,该线程也不能再调用该屏障的任何成员函数(析构函数除外)。
参见
|
抵达同步点并阻塞
(公开成员函数) |