C26110
警告 C26110:调用方未能持有锁 <lock>(在调用函数 <func> 前)。
当需要锁定,请确保阐明函数或调用方是否应获取锁。当有冲突 _Requires_lock_held_ 注释时,发出警告 C26110。
示例
在下面示例中,会生成 C26110 警告,因为在函数 LockRequired_Requires_lock_held_ 的注释,指出 LockRequired 的调用方必须获取锁,在调用 LockRequired之前。若无此注释,在这种情况下,它访问保护之前,锁定的所有共享数据 LockRequired 必须获取锁。
typedef struct _DATA
{
CRITICAL_SECTION cs;
int d;
} DATA;
_Requires_lock_held_(p->cs)
void LockRequired(DATA* p)
{
p->d = 0;
}
void LockNotHeld(DATA* p)
{
LockRequired(p); // Warning C26110
}