Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
'func' işlevinde kilit 'lock' serbest bırakılamıyor.
Açıklamalar
C/C++ programlarında sağlam kapsamlı kilit alma ve kilitleme yayın çiftlerinin uygulanması dil tarafından gerçekleştirilmiyor. İşlev, eşzamanlılık durumunda gözlemlenebilir bir değişiklik yaparak kilitleme yan etkisine neden olabilir. Örneğin, bir kilit sarmalayıcı işlevi belirli bir kilit için kilit alma sayısını veya kilit sayısını artırır.
Sırasıyla veya _Acquires_lock_kullanarak _Releases_lock_ kilit alma veya kilitleme yayınından yan etkisi olan bir işleve açıklama ekleyebilirsiniz. Bu tür ek açıklamalar olmadan, işlevin döndürdüğü kilit sayısını değiştirmemesi beklenir. Almalar ve sürümler dengeli değilse, yalnız bırakılmış olarak kabul edilir. Bir işlev yalnız bırakılmış bir kilit tanıttığında C26115 uyarısı verilir.
Örnek
Aşağıdaki örnek C26115 uyarısını oluşturur çünkü bir işlevde ile _Acquires_lock_açıklama eklenmemiş yalnız bırakılmış bir kilit vardır.
typedef struct _DATA
{
CRITICAL_SECTION cs;
} DATA;
void FailToReleaseLock(int flag, DATA* p)
{
EnterCriticalSection(&p->cs);
if (flag)
return; // Warning C26115
LeaveCriticalSection(&p->cs);
}