InterlockedExchange¶
Exchange 2 integers in a thread-safe way.
Declaration¶
Source position: systemh.inc line 1641
function InterlockedExchange(var Target: LongInt; Source: LongInt)
: LongInt;
function InterlockedExchange(var Target: Pointer; Source: Pointer)
: Pointer;external name 'FPC_INTERLOCKEDEXCHANGE64';
function InterlockedExchange(var Target: Cardinal; Source: Cardinal)
: Cardinal;external name 'FPC_INTERLOCKEDEXCHANGE';
Description¶
InterLockedExchange stores Source in Target and returns the old value of Target. This is done in a thread-safe way, i.e., only one processor is accessing the Target variable at a time.
Errors¶
None.
See also¶
| Name | Description |
|---|---|
| InterLockedDecrement | Thread-safe decrement. |
| InterLockedIncrement | Thread-safe increment. |
| InterLockedExchangeAdd | Thread-safe add and exchange of 2 values. |
| InterlockedCompareExchange | Conditional exchange. |