bugprone-spuriously-wake-up-functions

查找 cnd_waitcnd_timedwaitwaitwait_forwait_until 函数调用,当函数不是从检查条件谓词是否成立的循环中调用,或者函数没有条件参数。

if (condition_predicate) {
    condition.wait(lk);
}
if (condition_predicate) {
    if (thrd_success != cnd_wait(&condition, &lock)) {
    }
}

此检查对应于 CERT C++ 编码标准规则 CON54-CPP. 将可能虚假唤醒的函数封装在循环中 和 CERT C 编码标准规则 CON36-C. 将可能虚假唤醒的函数封装在循环中