Share via


C26115

경고 C26115: 함수 <func>에서 잠금<lock>을 해제하지 못했습니다.

구문으로 범위가 지정된 취득 잠금 그리고 릴리스 쌍에서 C/C++ 프로그램은 언어에 의해 수행 되지 않습니다.함수는 잠금 부작용 동시성 상태를 크게 수정하여 발생할 수 있습니다.예를 들어, 잠금 래퍼 함수 개수를 잠금 합병 또는 지정 잠금의 잠금 횟수를 증가 시킵니다.

부작용을 갖는 잠금 획득 또는 릴리스를 사용하여 잠금 함수에서 _Acquires_lock_ 또는 _Releases_lock_ , 각각 이용해서 주석을 달 수 있습니다.이러한 주석 없이 함수가 반환 된 후 모든 잠금 수를 바꿀 수 없게 발생 합니다.획득 및 릴리스 되지 않는 경우, 고아로 간주됩니다.경고 C26115 함수를 분리 된 잠금이 소개 될 때 발생 합니다.

예제

다음 예제에서는 경고가 C26115 함수를 사용하여 주석이 지정 되지 않은 분리 된 잠금이 있기 때문에 _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);
    }