Aracılığıyla paylaş


Uyarı C26167

Büyük olasılıkla 'func' işlevinde rafsız kilit 'lock' serbest bırakıyoruz.

Uyarı C26167, güvenilirlik düzeyinin düşük olması dışında C26117 uyarısını andırır. Örneğin, işlev ek açıklama hataları içerebilir.

Örnekler

Aşağıdaki kod C26167 ve C26110 oluşturur.

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);
}