C26110
警告 C26110: 在呼叫函式之前 <func>,持有鎖定<lock>的呼叫端失敗 。
當需要鎖定時,請確定釐清函式或它的呼叫端是否取得鎖定。當有違規 _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
}