경고 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
}