std::barrier<CompletionFunction>::arrive_and_drop

< cpp‎ | thread‎ | barrier
void arrive_and_drop();
(C++20 起)

将所有后继阶段的初始期待计数减少一,然后将当前阶段的期待计数减少一。

此函数原子地执行。对此函数的调用强先发生于当前阶段的阶段完成步骤的开始。

若当前阶段的期待计数为零则行为未定义。

参数

(无)

返回值

(无)

异常

错误时抛出 std::system_error ,带有对互斥体类型允许的错误码。

注解

此函数能导致当前阶段的阶段完成步骤开始。

若调用此函数前当前期待计数为零,则所有后继阶段的初始期待计数亦为零,这表示无法重用该 barrier

示例