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 
}