_interlockedbittestandset function (winnt.h)

Tests the specified bit of the specified LONG value and sets it to 1. The operation is atomic.

Syntax

BOOLEAN _interlockedbittestandset(
  [in] LONG volatile *Base,
  [in] LONG          Offset
);

Parameters

[in] Base

A pointer to a variable.

[in] Offset

The bit position to be tested. The offset is from the least-significant bit position, with zero testing the least-significant bit, and 31 testing the most-significant bit.

Return value

The value of the specified bit.

Remarks

The interlocked functions provide a simple mechanism for synchronizing access to a variable that is shared by multiple threads. This function is atomic with respect to calls to other interlocked functions.

This function is implemented using a compiler intrinsic where possible. For more information, see the WinBase.h header file and _interlockedbittestandset.

This function generates a full memory barrier (or fence) to ensure that memory operations are completed in order.

Note  This function is supported on Windows RT-based systems.
 

Requirements

Requirement Value
Target Platform Windows
Header winnt.h (include Windows.h)

See also

Interlocked Variable Access

InterlockedBitTestAndReset

InterlockedBitTestAndReset64

InterlockedBitTestAndResetAcquire

InterlockedBitTestAndResetRelease

InterlockedBitTestAndSet64

InterlockedBitTestAndSetAcquire

InterlockedBitTestAndSetRelease

Synchronization Functions