Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

_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 original 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


Feedback

Was this page helpful?

Additional resources