Megosztás:


Figyelmeztetés C26115

Nem sikerült feloldani a "lock" zárolást a func függvényben.

Megjegyzések

A C/C++ programokban a szintaktikai hatókörű zárolási és zárolási kiadási párok kényszerítése nem a nyelv által történik. A függvény zárolási mellékhatást okozhat azáltal, hogy megfigyelhető módosítást végez az egyidejűségi állapoton. A zár burkoló függvény például növeli egy adott zár megszerzéseinek számát, vagy zárszámot.

A zárolás megszerzése vagy feloldása által okozott mellékhatással rendelkező függvényeket megjegyzésekkel láthatja el _Acquires_lock_ illetve _Releases_lock_ használatával. Ilyen megjelölések nélkül elvárt, hogy a függvény ne módosítsa a zárolások számát a visszatérés után. Ha a beszerzések és kiadások nem kiegyensúlyozottak, árvanak minősülnek. Akkor kerül kiadásra a C26115 figyelmeztetés, ha egy függvény elhagyott zárolást vezet be.

Example

Az alábbi példa a C26115 figyelmeztetést generálja, mert egy olyan függvény árva zárolása van, amely nem jegyzetekkel van eljegyzve _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);
}