Sdílet prostřednictvím


Upozornění C26115

Nepodařilo se uvolnit zámek 'lock' ve funkci 'func'.

Poznámky

Vynucení syntakticky vymezených párů uzamčení a uvolnění zámků v programech C/C++ jazyk neprovádí. Funkce může zavést zamykání vedlejší účinek tím, že provede pozorovatelnou změnu stavu souběžnosti. Například funkce zamykací obálky zvýší počet pořízení zámků nebo počet zámků pro daný zámek.

Funkci, která má vedlejší účinek, můžete opatřením zámku opatřením nebo uvolněním _Acquires_lock_ pomocí nebo _Releases_lock_nebo . Bez těchto poznámek se očekává, že funkce po vrácení nezmění žádný počet zámků. Pokud získání a vydání nejsou vyvážená, považují se za osamocené. Upozornění C26115 je vydáno, když funkce zavádí osamocený zámek.

Příklad

Následující příklad generuje upozornění C26115, protože je osamocený zámek ve funkci, která není opatřena poznámkami _Acquires_lock_.

typedef struct _DATA
{
    CRITICAL_SECTION cs;
} DATA;

void FailToReleaseLock(int flag, DATA* p)
{
    EnterCriticalSection(&p->cs);

    if (flag)
        return; // Warning C26115

    LeaveCriticalSection(&p->cs);
}