Предупреждение C26110
Вызывающий объект не удерживает блокировку "lock" перед вызовом функции Func.
Если требуется блокировка, убедитесь, что сама функция или вызывающий объект должен получить блокировку. Предупреждение C26110 выдается при нарушении заметки _Requires_lock_held_
или других заметок, связанных с блокировкой. Дополнительные сведения см. в разделе "Аннотирование поведения блокировки"
Пример
В следующем примере создается предупреждение C26110, так как заметка _Requires_lock_held_
о функции LockRequired
указывает, что вызывающий объект LockRequired
должен получить блокировку перед вызовом LockRequired
. Без этой заметки необходимо получить блокировку перед доступом к любым общим данным, LockRequired
защищенным блокировкой.
typedef struct _DATA
{
CRITICAL_SECTION cs;
int d;
} DATA;
_Requires_lock_held_(p->cs)
void LockRequired(DATA* p)
{
p->d = 0;
}
void LockNotHeld(DATA* p)
{
LockRequired(p); // Warning C26110
}
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по