Partager via


C26110

avertissement C26110 : L'appellant n'as pas réussi à garder le vérou <lock> avant l'appel de la fonction <func>.

Lorsqu'un verrou est requis, veillez à clarifier si la fonction elle-même ou son appelant doit acquérir le verrou.L'avertissement C26110 est émis lors d'une violation de l'annotation _Requires_lock_held_ .

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 doit 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 
}