Partager via


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
}