Compartir a través de


C26101

Advertencia C26101: La operación de interbloqueos no se usó correctamente para la variable <variable>.

Las API de Windows proporcionan una serie de operaciones entrelazadas.La anotación _Interlocked_ especifica que sólo se debe obtener acceso a una variable a través de una operación entrelazada.Se emite la advertencia C26101 cuando un acceso no es coherente con la anotación _Interlocked_.

Ejemplo

El siguiente ejemplo genera la advertencia C26101 porque hay una infracción del contrato _Interlocked_.

CRITICAL_SECTION cs;
typedef struct _DATA 
{
    _Interlocked_ LONG data;
} DATA;

void Safe(DATA* p) 
{
    InterlockedIncrement(&p->data); // OK
}

void Unsafe(DATA* p) 
{
    p->data += 1; // Warning C26101
    EnterCriticalSection(&cs);
    LeaveCriticalSection(&cs);
}