Aracılığıyla paylaş


C26112

C26112 Uyarı: arayan <func> çağırmadan önce herhangi bir kilit tutun olamaz.

Ek açıklama _Requires_no_locks_held_ işlevini çağırır arayan herhangi bir kilit tutarken gerekir değil, bir önkoşulun uygular.Başka bir işlevi çağırmadan önce tüm kilitleri serbest bırakmak bir işlev başarısız olduğunda uyarı C26112 verilir.

Örnek

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

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);
}