C26110C26110

avertissement C26110 : appelant ne parvenant pas à maintenir le verrou <verrou > avant d’appeler la fonction <func >.warning C26110: Caller failing to hold lock <lock> before calling function <func>.

Lorsqu’un verrou est requis, veillez à préciser si la fonction elle-même ou à son appelant doit acquérir le verrou.When a lock is required, make sure to clarify whether the function itself or its caller should acquire the lock. C26110 d’avertissement est émis lorsqu’il existe une violation de la _Requires_lock_held_ annotation.Warning C26110 is issued when there is a violation of the _Requires_lock_held_ annotation.

ExempleExample

Dans l’exemple suivant, l’avertissement C26110 est généré car l’annotation _Requires_lock_held_ fonction LockRequired indique que l’appelant de LockRequired doit acquérir le verrou avant d’appeler LockRequired.In the following example, warning C26110 is generated because the annotation _Requires_lock_held_ on function LockRequired states that the caller of LockRequired must acquire the lock before it calls LockRequired. Sans cette annotation, LockRequired doit acquérir le verrou avant d’accéder à toutes les données protégées par le verrou partagées.Without this annotation, LockRequired has to acquire the lock before it accesses any shared data protected by the lock.


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
}