Avertissement C26112
L’appelant ne peut pas contenir de verrou avant d’appeler « func ».
L’annotation _Requires_no_locks_held_
impose une condition préalable que l’appelant ne doit contenir aucun verrou pendant qu’il appelle la fonction. Avertissement C26112 est émis lorsqu’une fonction ne parvient pas à libérer tous les verrous avant d’appeler une autre fonction.
Exemple
L’exemple suivant génère l’avertissement C26112, car la _Requires_no_locks_held_
condition préalable est violée par l’appel à NoLocksAllowed
la section verrouillée.
typedef struct _DATA
{
CRITICAL_SECTION cs;
} DATA;
_Requires_no_locks_held_
void NoLocksAllowed(DATA* p)
{
// Lock sensitive operations here
}
void LocksHeldFunction(DATA* p)
{
EnterCriticalSection(&p->cs);
NoLocksAllowed(p); // Warning C26112
LeaveCriticalSection(&p->cs);
}