영어로 읽기

다음을 통해 공유


경고 C26110

호출자가 함수 'func'를 호출하기 전에 잠금 'lock'을 보유하지 못했습니다.

잠금이 필요한 경우 함수 자체 또는 해당 호출자가 잠금을 획득해야 하는지 여부를 명확히 해야 합니다. 주석 또는 기타 잠금 관련 주석이 위반 _Requires_lock_held_ 되면 경고 C26110이 발생합니다. 자세한 내용은 잠금 동작 주석 지정을 참조 하세요.

예시

다음 예제에서는 _Requires_lock_held_ 함수의 LockRequired 주석에 LockRequired 호출자가 LockRequired를 호출하기 전에 잠금을 획득하도록 지정되었기 때문에 경고 C26110이 생성되었습니다. 이 주석이 없으면 LockRequired가 잠금으로 보호되는 공유 데이터에 액세스하기 전에 잠금을 획득해야 합니다.

typedef struct _DATA
{
    CRITICAL_SECTION cs;
    int d;
} DATA;

_Requires_lock_held_(p->cs)

void LockRequired(DATA* p)
{
    p->d = 0;
}

void LockNotHeld(DATA* p)
{
    LockRequired(p); // Warning C26110
}