Condividi tramite


C26112

warning C26112: Il chiamante non può utilizzare alcun blocco prima di chiamare <func>.

L'annotazione _Requires_no_locks_held_ impone la condizione che il chiamante non contenga alcun blocco durante la chiamata alla funzione.L'avviso C26112 viene generato quando una funzione non riesce a rilasciare tutti i blocchi, prima di chiamare un'altra funzione.

Esempio

Nell'esempio seguente viene generato l'avviso C26112 perché la precondizione _Requires_no_locks_held_ viene violata dalla chiamata NoLocksAllowed all'interno della sezione di blocco.

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);
}