bugprone-spuriously-wake-up-functions¶
查找 cnd_wait
、cnd_timedwait
、wait
、wait_for
或 wait_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. 将可能虚假唤醒的函数封装在循环中。