C26101

Note

This article applies to Visual Studio 2015. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here

warning C26101: Failing to use interlocked operation properly for variable <var>.

Windows APIs offer a variety of interlocked operations. Annotation _Interlocked_ specifies that a variable should only be accessed through an interlocked operation. Warning C26101 is issued when an access is not consistent with the _Interlocked_ annotation.

Example

The following example generates warning C26101 because there is a violation of the _Interlocked_ contract.

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