Предупреждение C26111
Вызывающий объект не удалось освободить блокировку блокировки перед вызовом функции Func.
Заметка _Requires_lock_not_held_
накладывает условие, что число блокировок для указанной блокировки не может быть больше нуля при вызове функции. Предупреждение C26111 выдается, когда функция не может освободить блокировку перед вызовом другой функции.
Пример
В следующем примере создается предупреждение C26111, так как _Requires_lock_not_held_
условие нарушается вызовом DoNotLock
в заблокированном разделе.
typedef struct _DATA
{
CRITICAL_SECTION cs;
int d;
} DATA;
_Requires_lock_not_held_(p->cs)
void DoNotLock(DATA* p)
{
EnterCriticalSection(&p->cs);
p->d = 0;
LeaveCriticalSection(&p->cs);
}
void LockedFunction(DATA* p)
{
EnterCriticalSection(&p->cs);
DoNotLock(p); // Warning C26111
LeaveCriticalSection(&p->cs);
}
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по