Intrinsic functions of the compiler to allow for shared memory synchronization, especially between nodes.
long InterlockedCompareExchange (
    long volatile * Destination,
    long Exchange,
    long Comperand);
short InterlockedCompareExchange16 (
    short volatile * Destination,
    short Exchange,
    short Comperand);
long long InterlockedCompareExchange64 (
    long long volatile *Destination,
    long long Exchange,
    long long Comperand);
long InterlockedDecrement(
    long volatile * lpAddend);
short InterlockedDecrement16(
    short volatile * Addend);
long long InterlockedDecrement64(
    long long volatile * Addend);
long InterlockedExchange(
    long volatile * Target,
    long Value);
short InterlockedExchange16(
    short volatile * Target,
    short Value);
long long     InterlockedExchange64(
    long long volatile * Target,
    long long Value);
long InterlockedExchangeAdd(
    long volatile * Addend,
    long Value);
short InterlockedExchangeAdd16(
    short volatile * Addend,
    short Value);
long long InterlockedExchangeAdd64(
    long long volatile * Addend,
    long long Value);
long InterlockedIncrement(
    long volatile * Addend);
short InterlockedIncrement16(
    short volatile * Addend);
long long InterlockedIncrement64(
    long long volatile * Addend);
#define InterlockedExchangePointer(Target, Value) \
    (PVOID)InterlockedExchange((LONG*)(Target), (LONG)(Value))
#define InterlockedCompareExchangePointer(Destination, ExChange, Comperand) \
    (PVOID)InterlockedCompareExchange((LONG*)(Destination), (LONG)(ExChange), (LONG)(Comperand))
The variable pointed to by the Addend parameter must be aligned on a 64-bit boundary; otherwise, this function will behave unpredictably on multiprocessor x86 systems and any non-x86 systems.
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 generates a full memory barrier (or fence) to ensure that memory operations are completed in order.
| Versions | Defined in | Include | Link to | 
|---|---|---|---|
| INtime 3.0 | intime/rt/include/rtbase.h | rt.h | rt.lib | 
| intime/rt/include/intrin.h | rt.h | rt.lib |