경고 C26115
함수 'func'에서 잠금 'lock'을 해제하지 못했습니다.
C/C++ 프로그램에서 구문적으로 범위가 지정된 잠금 획득 및 잠금 릴리스 쌍의 적용은 언어에 의해 수행되지 않습니다. 함수가 현재 상태를 크게 수정함으로써 잠금 부작용이 발생할 수 있습니다. 예를 들어 잠금 래퍼 함수는 지정된 잠금에 대해 잠금 획득 횟수 또는 잠금 수를 증분합니다.
_Acquires_lock_
또는 _Releases_lock_
을 사용하면 각각 잠금 획득 또는 잠금 해제로 인한 부작용이 있는 함수를 주석 처리할 수 있습니다. 이러한 주석 없이는 함수가 반환 후 잠금 수를 변경하지 않을 것으로 예상됩니다. 획득 및 릴리스가 균형이 맞지 않으면 분리된 것으로 간주됩니다. 함수가 고아 잠금을 일으키면 경고 C26115가 발생합니다.
예시
다음 예제에서는 주석 _Acquires_lock_
이 추가되지 않은 함수에 분리된 잠금이 있으므로 경고 C26115를 생성합니다.
typedef struct _DATA
{
CRITICAL_SECTION cs;
} DATA;
void FailToReleaseLock(int flag, DATA* p)
{
EnterCriticalSection(&p->cs);
if (flag)
return; // Warning C26115
LeaveCriticalSection(&p->cs);
}
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기