Avviso C26110
Il chiamante non riesce a contenere il blocco 'lock' prima di chiamare la funzione 'func'.
Quando è necessario un blocco, assicurarsi di chiarire se la funzione stessa o il chiamante deve acquisire il blocco. L'avviso C26110 viene generato quando si verifica una violazione dell'annotazione _Requires_lock_held_
o di altre annotazioni correlate al blocco. Per altre informazioni, vedere Annotazione del comportamento di blocco
Esempio
Nell'esempio seguente viene generato l'avviso C26110 perché l'annotazione _Requires_lock_held_
sulla funzione LockRequired
indica che il chiamante di deve acquisire il blocco prima di LockRequired
chiamare LockRequired
. Senza questa annotazione, LockRequired
deve acquisire il blocco prima di accedere ai dati condivisi protetti dal blocco.
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
}