命名空间
变体
操作

std::experimental::flex_barrier::arrive_and_drop

来自 cppreference.cn
void arrive_and_drop();
(并发技术规范)

到达 flex_barrier 的同步点,并将当前线程从参与线程集中移除。此函数是否会阻塞直到完成阶段结束是未指定的。如果函数阻塞,调用线程可能会被选为执行完成阶段。

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

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

arrive_and_droparrive_and_wait 的调用永远不会相互或与自身引入数据竞争。

[编辑] 异常

不抛出任何异常。

[编辑] 注释

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

线程在 flex_barrier 上调用 arrive_and_drop 后,除了析构函数,它不能在此屏障上调用任何成员函数,即使完成阶段调用的函数对象返回一个正值。

[编辑] 另请参见

到达同步点并阻塞
(公共成员函数) [编辑]