Sdílet prostřednictvím


C26111

Upozornění C26111: Volající neuspěl při pokusu o uvolnění zámku <lock> před voláním funkce <func>.

Poznámka _Requires_lock_not_held_ vyžaduje splnění podmínky, kdy počet uzamčení určitého zámku nesmí být větší než nula, když je funkce zavolána.Upozornění C26111 je vystaveno tehdy, když se funkci nepodaří uvolnit zámek před zavoláním jiné funkce.

Příklad

Následující příklad vyvolá upozornění C26111, protože podmínka _Requires_lock_not_held_ je porušena voláním funkce DoNotLock v uzamčené sekci.

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