C26112
警告 C26112: 调用方不能保留任何锁定,然后才能调用 <func>。
批注_Requires_no_locks_held_会增加调用方不得持有任何锁时,它调用该函数的前提条件。 函数无法释放所有锁定,再调用另一个函数时,会发出警告 C26112。
示例
下面的示例生成警告 C26112,因为_Requires_no_locks_held_前提条件违反的调用NoLocksAllowed中的锁定部分。
typedef struct _DATA
{
CRITICAL_SECTION cs;
} DATA;
_Requires_no_locks_held_
void NoLocksAllowed(DATA* p)
{
// Lock sensitive operations here
}
void LocksHeldFunction(DATA* p)
{
EnterCriticalSection(&p->cs);
NoLocksAllowed(p); // Warning C26112
LeaveCriticalSection(&p->cs);
}