Aracılığıyla paylaş


C26111

C26111 Uyarı: arayan kilidi <lock> başarısız <func> işlevi çağırmadan önce.

Ek açıklama _Requires_lock_not_held_ işlev çağrıldığında belirtilen kilit kilit sayısı sıfırdan büyük olamaz, bir önkoşulun uygular.Başka bir işlevi çağırmadan önce kilidi açmak bir işlev başarısız olduğunda uyarı C26111 verilir.

Örnek

Çünkü C26111 uyarı aşağıdaki örnek oluşturur _Requires_lock_not_held_ çağrısıyla önkoşulu ihlal DoNotLock içinde kilitli bir bölüme.

typedef struct _DATA 
{
    CRITICAL_SECTION cs;
    int d;
} DATA;

_Requires_lock_not_held_(p->cs) 

void DoNotLock(DATA* p)
{
    EnterCriticalSection(&p->cs); 
    p->d = 0;
    LeaveCriticalSection(&p->cs);
}

void LockedFunction(DATA* p) 
{ 
    EnterCriticalSection(&p->cs); 
    DoNotLock(p); // Warning C26111
    LeaveCriticalSection(&p->cs);
}