Skip to content

InterlockedExchangeAdd

Thread-safe add and exchange of 2 values.

Declaration

Source position: systemh.inc line 1642

function InterlockedExchangeAdd(var Target: LongInt; Source: LongInt)
                                : LongInt;
function InterlockedExchangeAdd(var Target: Pointer; Source: Pointer)
                                : Pointer;external name 'FPC_INTERLOCKEDEXCHANGEADD64';
function InterlockedExchangeAdd(var Target: Cardinal; Source: Cardinal)
                                : Cardinal;external name 'FPC_INTERLOCKEDEXCHANGEADD';

Description

InterLockedExchangeAdd adds to Target the value of Source in a thread-safe way, 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.
InterLockedExchange Exchange 2 integers in a thread-safe way.
InterlockedCompareExchange Conditional exchange.