INtime SDK Help
InterlockedCompareExchange (iwin32)
INtime SDK v7.1 > About INtime > Alternate APIs > iwin32 API > iwin32 API > InterlockedCompareExchange (iwin32)

Atomically compares the Destination and Comperand values. If the Destination value equals the Comperand value, the Exchange value is stored in the address specified by Destination. Otherwise, no action occurs.

LONG InterlockedCompareExchange( 
    LPLONG volatile Destination,
    LONG Exchange,
    LONG Comperand


Destination value address.
Exchange value.
The value to compare to Destination.


InterlockedCompareExchange, InterlockedDecrement, InterlockedExchange, InterlockedExchangeAdd, and InterlockedIncrement provide a simple mechanism for synchronizing access to a variable shared by multiple threads. If the variable is in shared memory, threads of different processes can use this mechanism.

The variables for InterlockedCompareExchange must be aligned on a 32-bit boundary.

Return Values

The destination's initial value.


Versions Defined in Include Link to
INtime 3.0 intime/rt/include/winbase.h windows.h iwin32.lib


This function operates in the real-time portion of your application.

See Also

InterlockedDecrement, InterlockedExchange, InterlockedExchangeAdd, InterlockedIncrement, iwin32 API, iwin32 Overview