Open CASCADE Technology 7.8.0
|
Implementation of some atomic operations (elementary operations with data that cannot be interrupted by parallel threads in the multithread process) on various platforms. More...
Functions | |
int | Standard_Atomic_Increment (volatile int *theValue) |
Increments atomically integer variable pointed by theValue and returns resulting incremented value. | |
int | Standard_Atomic_Decrement (volatile int *theValue) |
Decrements atomically integer variable pointed by theValue and returns resulting decremented value. | |
bool | Standard_Atomic_CompareAndSwap (volatile int *theValue, int theOldValue, int theNewValue) |
Perform an atomic compare and swap. That is, if the current value of *theValue is theOldValue, then write theNewValue into *theValue. | |
Implementation of some atomic operations (elementary operations with data that cannot be interrupted by parallel threads in the multithread process) on various platforms.
By the moment, only operations necessary for reference counter in Standard_Transient objects are implemented.
This is preferred to use fixed size types "int32_t" / "int64_t" for correct function declarations however we leave "int" assuming it is 32bits for now.
|
inline |
Perform an atomic compare and swap. That is, if the current value of *theValue is theOldValue, then write theNewValue into *theValue.
theValue | pointer to variable to modify |
theOldValue | expected value to perform modification |
theNewValue | new value to set in case if *theValue was equal to theOldValue |
Decrements atomically integer variable pointed by theValue and returns resulting decremented value.