Freigeben über


C26115

Warnung C26115: Lösen der Sperre <Sperre> in der Funktion <func> fehlgeschlagen.

Erzwingung der syntaktisch bereichsbezogenen Sperre ab und rufen sperren Versionspaare in C/C++-Programmen ausgeführt wird von der Sprache nicht.Eine Funktion ist möglicherweise ein Sperrennebeneffekt vor, indem sie eine erkennbare Änderung des Nebenläufigkeitszustand macht.Beispielsweise erhöht eine Sperrenwrapperfunktion die Anzahl von Sperrendatenerfassungen oder Sperrenanzahl, für eine angegebene Sperre.

Sie können eine Funktion bzw. kommentieren, die einen Nebeneffekt von einer Sperre Version abrufen oder sperren können, indem _Acquires_lock_ oder _Releases_lock_, verwendet.Ohne solchen Anmerkungen kann eine Funktion erwartet, um keine Sperrenanzahl zu ändern, nachdem er zurück.Wenn abruft und Versionen nicht ausgeglichen werden, werden sie als verwaiste betrachtet.Warnung C26115 wird ausgegeben, wenn eine Funktion eine verwaiste Sperre vorgestellt wird.

Beispiel

Im folgenden Beispiel wird die Warnung C26115, da es eine verwaiste Sperren in einer Funktion gibt, die nicht mit _Acquires_lock_ gekennzeichnet wird.

    typedef struct _DATA 
    {
        CRITICAL_SECTION cs;
    } DATA;

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

        if (flag)
            return; // Warning C26115

        LeaveCriticalSection(&p->cs);
    }