Avertissement C26110
L’appelant ne parvient pas à maintenir le verrou « lock » avant d’appeler la fonction « func ».
Lorsqu’un verrou est requis, veillez à clarifier si la fonction elle-même ou son appelant doit acquérir le verrou. Avertissement C26110 est émis en cas de violation de l’annotation _Requires_lock_held_
ou d’autres annotations liées au verrouillage. Pour plus d’informations, consultez Annoter le comportement de verrouillage
Exemple
Dans l’exemple suivant, l’avertissement C26110 est généré, car l’annotation _Requires_lock_held_
sur la fonction LockRequired
indique que l’appelant de LockRequired
doit acquérir le verrou avant d’appeler LockRequired
. Sans cette annotation, LockRequired
il faut acquérir le verrou avant d’accéder à toutes les données partagées protégées par le verrou.
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
}