Legacy Documentclose button

Important: The information in this document is obsolete and should not be used for new development.

Previous Book Contents Book Index Next

Inside Macintosh: Networking With Open Transport / Part 2 - Open Transport Reference
Chapter 27 - Utilities Reference / Functions
Atomic Operations /


OTCompareAndSwap16

Atomically compares two 16-bit values and changes one of these values if they are the same.

C INTERFACE
Boolean OTCompareAndSwap16(
                     UInt32 oldVal,
                     UInt32 newVal,
                     UInt16* where)
C++ INTERFACE
None. C++ applications use the C interface to this function.

PARAMETERS
oldVal
The 16-bit value being compared to the value referenced by the where parameter.
newVal
The value to be assigned to the 16-bit value referenced by the where parameter.
where
A reference to the 16-bit value being compared to that specified by the oldVal parameter.
function result
Returns true if the swap is done.
DISCUSSION
This function compares the least significant 16 bits of oldVal with the value referenced by the where parameter. If the two values are the same, the function replaces the 16-bit value referenced by the where parameter with the value specified by the newVal parameter and it returns true. If the two values are not the same, no swap occurs and the function returns false.

The entire compare and swap operation is atomic.

WARNING
The pointer where must be at an address where the second byte of the 16 bit value is not in a different 4-byte cell than the first byte (i.e. (where % 4) != 3).
Use the OTCompareAndSwap32 function to compare two 32-bit values and set one if they are the same.

Use the OTCompareAndSwap8 function to compare two 8-bit values and set one if they are the same.


Previous Book Contents Book Index Next

© Apple Computer, Inc.
15 JAN 1998