_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.
Requirements
Requirement | Value |
---|---|
Target Platform | Windows |
Header | winnt.h (include Windows.h) |
See also
InterlockedBitTestAndResetAcquire
InterlockedBitTestAndResetRelease
InterlockedBitTestAndSetAcquire