C26167
uyarı C26167: Olasılıkla unheld <lock> kilidi işlevi içinde ortaya çıkar <func>.
Uyarı C26167; C26117 uyarasına güvenilirlilik düzeyini daha düşük olması dışında benzer.Örneğin, işlev ek açıklama ekleme hataları içerebilir.
Örnek
Aşağıdaki kod, C26110 yanı sıra C26167 oluşturacaktır.
typedef struct _DATA {
CRITICAL_SECTION cs;
} DATA;
_Releases_lock_(p->cs) void Leave(DATA* p) {
LeaveCriticalSection(&p->cs); // OK
}
void ReleaseUnheldLock(DATA* p) { // Warning C26167
int i = 0;
Leave(p); // Warning C26110
}
Aşağıdaki kod, bu uyarıları düzeltecektir.
typedef struct _DATA {
CRITICAL_SECTION cs;
} DATA;
_Releases_lock_(p->cs) void Leave(DATA* p) {
LeaveCriticalSection( &p->cs );
}
void ReleaseUnheldLock( DATA* p ) {
EnterCriticalSection( &p->cs );
int i = 0;
Leave(p);
}