Freigeben über


C26115

Warnung C26115: Sperre <lock> in der Funktion nicht freigeben können <func> .

Erzwingung der syntaktisch bewerteten Sperre Abrufen und Sperren versions paare in C/C++-Programmen wird von der Sprache nicht ausgeführt.Eine Funktion kann einen Sperren nebeneffekt vor, indem sie eine Änderung am Zustand Parallelitäts wahrnehmbare.Zum Beispiel wird eine Wrapper Sperren für die Anzahl von Sperren datenerfassungen oder Sperrenanzahl für die angegebene Sperre.

Sie können Anmerkungen hinzuzufügen bzw. eine Funktion, die einen Nebeneffekt von einer Sperre abrufen oder Version sperren können, indem _Acquires_lock_ oder _Releases_lock_verwendet.Ohne diese Anmerkungen ist eine Funktion erwartet wird, dass keine Sperrenanzahl zu ändern, nachdem sie zurückkehrt.Wenn abruft und Versionen nicht ausgeglichen werden, werden sie als verwaistbetrachtet.Das C26115 Warnung wird ausgegeben, wenn eine Funktion eine verwaiste Sperren einführt.

Beispiel

Im folgenden Beispiel wird die Warnung C26115, da es sich um eine verwaiste Sperren in einer Funktion vorhanden ist, die nicht mit _Acquires_lock_eine Anmerkung hinzugefügt 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);
    }