Share via


C26110

경고 C26110: 함수 <func>를 호출하기 전에 호출자가 잠금 <lock> 유지에 실패했습니다.

잠금이 필요한 경우 함수 자체 또는 해당 호출자가 잠금을 획득 해야 하는 여부를 명확하게 하고 있는지 확인 합니다._Requires_lock_held_ 주석의 위반이 있을 때 경고 C26110은 발생합니다.

예제

다음 예제에서 C26110 경고 발생은 LockRequired 의 호출의 LockRequired 상태 함수에서 _Requires_lock_held_ 주석이 LockRequired을 호출하기 전에 잠금을 획득 해야만 합니다.주석 없이, 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 
}