C26115
Aviso C26115: Falha ao liberar o bloqueio <lock> na função <func>.
Imposição de bloqueio sintaticamente com escopo adquirir e lock release pares em programas C/C++ não é executada pelo idioma.Uma função pode introduzir um efeito colateral bloqueio fazendo uma modificação observável o estado de simultaneidade.Por exemplo, uma função de wrapper de bloqueio incrementa o número de aquisições de bloqueio ou a contagem de bloqueio de um bloqueio determinado.
Você poderá anotar uma função que tem um efeito colateral de um bloqueio de adquirir ou bloquear o lançamento usando _Acquires_lock_ ou _Releases_lock_, respectivamente.Sem essas anotações, espera-se uma função para não alterar qualquer contagem de bloqueio após ela retornar.Se adquire e versões não são balanceados, eles são considerados órfãos.C26115 de aviso é emitido quando uma função apresenta um bloqueio órfão.
Exemplo
O exemplo a seguir gera o aviso de C26115, porque há um bloqueio órfão em uma função que não é anotada com _Acquires_lock_.
typedef struct _DATA
{
CRITICAL_SECTION cs;
} DATA;
void FailToReleaseLock(int flag, DATA* p)
{
EnterCriticalSection(&p->cs);
if (flag)
return; // Warning C26115
LeaveCriticalSection(&p->cs);
}