help files
Z505 | PasWiki | FUQ | Search | Main Docs | API Guide



[Overview][Constants][Types][Classes][Procedures and functions][Variables] Reference for unit 'System' (#rtl)

InterlockedCompareExchange

Conditional exchange

Declaration

Source position: line 0

function InterlockedCompareExchange(

  var Target: LongInt;

  NewValue: LongInt;

  Comperand: LongInt

):LongInt;

function InterlockedCompareExchange(

  var Target: Pointer;

  NewValue: Pointer;

  Comperand: Pointer

):Pointer;

Description

InterlockedCompareExchange does an compare-and-exchange operation on the specified values in a thread-safe way. The function compares Target and Comparand and exchanges Target with NewValue if Target and Comparand are equal. It 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

InterLockedDecrement

  

Thread-safe decrement

InterLockedIncrement

  

Thread-safe increment

InterLockedExchange

  

Exchange 2 integers in a thread-safe way

InterLockedExchangeAdd

  

Thread-safe add and exchange of 2 values

Notes

 No notes exist for this page yet. 





lufdoc, Powtils, fpc, freepascal, delphi, kylix, c/c++, mysql, cgi web framework docs, Z505