cnd_broadcast 仅唤醒在广播前等待的线程

cnd_broadcast only wakeup threads who wait before the broadcast

我发现了 cnd_broadcast 的奇怪行为 i 运行 2个线程,其中一个正在忙着做某事。 其中一个正在等待一份新工作。 并且主线程调用 cnd_broadcast 以通知所有线程没有剩余工作,因此它们可以 return。 然后主要等待 chid 线程到 return thrd_join。 但并非所有 子线程都得到通知。只有在广播前等待的人才会收到通知。 和其他线程卡住等待信号。 这是它应该发生的事情吗?

结果是它的预期和记录。 cppreference > cnd_broadcast