다음을 통해 공유


경고 C26112

호출자는 'func'를 호출하기 전에 잠금을 유지할 수 없습니다.

주석 _Requires_no_locks_held_ 은 호출자가 함수를 호출하는 동안 잠금을 보유하지 않아야 한다는 전제 조건을 적용합니다. 다른 함수를 호출하기 전에 함수가 모든 잠금을 해제하지 못하면 경고 C26112가 발생합니다.

예시

다음 예제에서는 잠긴 섹션 내에서 호출을 통해 사전 조건을 위반하므로 경고 C26112 _Requires_no_locks_held_NoLocksAllowed 생성합니다.

typedef struct _DATA
{
    CRITICAL_SECTION cs;
} DATA;

_Requires_no_locks_held_

void NoLocksAllowed(DATA* p)
{
     // Lock sensitive operations here
}

void LocksHeldFunction(DATA* p)
{
    EnterCriticalSection(&p->cs);
    NoLocksAllowed(p); // Warning C26112
    LeaveCriticalSection(&p->cs);
}