Avertissement C26111
L’appelant n’a pas réussi à libérer le verrou « lock » avant d’appeler la fonction « func ».
L’annotation _Requires_lock_not_held_
impose une condition préalable selon laquelle le nombre de verrous pour le verrou spécifié ne peut pas être supérieur à zéro lorsque la fonction est appelée. Avertissement C26111 est émis lorsqu’une fonction ne parvient pas à libérer le verrou avant d’appeler une autre fonction.
Exemple
L’exemple suivant génère l’avertissement C26111, car la _Requires_lock_not_held_
condition préalable est violée par l’appel à DoNotLock
la section verrouillée.
typedef struct _DATA
{
CRITICAL_SECTION cs;
int d;
} DATA;
_Requires_lock_not_held_(p->cs)
void DoNotLock(DATA* p)
{
EnterCriticalSection(&p->cs);
p->d = 0;
LeaveCriticalSection(&p->cs);
}
void LockedFunction(DATA* p)
{
EnterCriticalSection(&p->cs);
DoNotLock(p); // Warning C26111
LeaveCriticalSection(&p->cs);
}
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour