**NAME**

Atomic Operations

**DESCRIPTION**

The Atomic Operations functions allow callers to operate on 32-bit signed integers in an atomic fashion.

**NAME**

cl_atomic_add

**DESCRIPTION**

Thecl_atomic_addfunction atomically adds a value to a 32-bit signed integer and returns the resulting value.

**SYNOPSIS**

CL_EXPORT int32_t CL_APIcl_atomic_add( IN atomic32_t* const p_value, IN const int32_t increment );

**PARAMETERS**

p_value [in] Pointer to a 32-bit integer that will be added to. increment [in] Value by which to increment the integer pointed to by p_value.

**RETURN VALUE**

Returns the value pointed to by p_value after the addition.

**NOTES**

The provided increment is added to the value and the result returned in one atomic operation.cl_atomic_addmaintains data consistency without requiring additional synchronization mechanisms in multi-threaded environments.

**SEE ALSO**

Atomic Operations, cl_atomic_inc, cl_atomic_dec, cl_atomic_sub, cl_atomic_xchg, cl_atomic_comp_xchg

**NAME**

cl_atomic_comp_xchg

**DESCRIPTION**

Thecl_atomic_comp_xchgfunction atomically compares a 32-bit signed integer to a desired value, sets that integer to the specified value if equal, and returns the initial value.

**SYNOPSIS**

CL_EXPORT int32_t CL_APIcl_atomic_comp_xchg( IN atomic32_t* const p_value, IN const int32_t compare, IN const int32_t new_value );

**PARAMETERS**

p_value [in] Pointer to a 32-bit integer to exchange with new_value. compare [in] Value to compare to the value pointed to by p_value. new_value [in] Value to assign if the value pointed to by p_value is equal to the value specified by the compare parameter.

**RETURN VALUE**

Returns the initial value of the variable pointed to by p_value.

**NOTES**

The value pointed to by p_value is compared to the value specified by the compare parameter. If the two values are equal, the p_value variable is set to new_value. The initial value pointed to by p_value is returned.cl_atomic_comp_xchgmaintains data consistency without requiring additional synchronization mechanisms in multi-threaded environments.

**SEE ALSO**

Atomic Operations, cl_atomic_inc, cl_atomic_dec, cl_atomic_add, cl_atomic_sub, cl_atomic_xchg

**NAME**

cl_atomic_dec

**DESCRIPTION**

Thecl_atomic_decfunction atomically decrements a 32-bit signed integer and returns the decremented value.

**SYNOPSIS**

CL_EXPORT int32_t CL_APIcl_atomic_dec( IN atomic32_t* const p_value );

**PARAMETERS**

p_value [in] Pointer to a 32-bit integer to decrement.

**RETURN VALUE**

Returns the decremented value pointed to by p_value.

**NOTES**

The provided value is decremented and its value returned in one atomic operation.cl_atomic_decmaintains data consistency without requiring additional synchronization mechanisms in multi-threaded environments.

**SEE ALSO**

Atomic Operations, cl_atomic_inc, cl_atomic_add, cl_atomic_sub, cl_atomic_xchg, cl_atomic_comp_xchg

**NAME**

cl_atomic_inc

**DESCRIPTION**

Thecl_atomic_incfunction atomically increments a 32-bit signed integer and returns the incremented value.

**SYNOPSIS**

CL_EXPORT int32_t CL_APIcl_atomic_inc( IN atomic32_t* const p_value );

**PARAMETERS**

p_value [in] Pointer to a 32-bit integer to increment.

**RETURN VALUE**

Returns the incremented value pointed to by p_value.

**NOTES**

The provided value is incremented and its value returned in one atomic operation.cl_atomic_incmaintains data consistency without requiring additional synchronization mechanisms in multi-threaded environments.

**SEE ALSO**

Atomic Operations, cl_atomic_dec, cl_atomic_add, cl_atomic_sub, cl_atomic_xchg, cl_atomic_comp_xchg

**NAME**

cl_atomic_sub

**DESCRIPTION**

Thecl_atomic_subfunction atomically subtracts a value from a 32-bit signed integer and returns the resulting value.

**SYNOPSIS**

CL_EXPORT int32_t CL_APIcl_atomic_sub( IN atomic32_t* const p_value, IN const int32_t decrement );

**PARAMETERS**

p_value [in] Pointer to a 32-bit integer that will be subtracted from. decrement [in] Value by which to decrement the integer pointed to by p_value.

**RETURN VALUE**

Returns the value pointed to by p_value after the subtraction.

**NOTES**

The provided decrement is subtracted from the value and the result returned in one atomic operation.cl_atomic_submaintains data consistency without requiring additional synchronization mechanisms in multi-threaded environments.

**SEE ALSO**

Atomic Operations, cl_atomic_inc, cl_atomic_dec, cl_atomic_add, cl_atomic_xchg, cl_atomic_comp_xchg

**NAME**

cl_atomic_xchg

**DESCRIPTION**

Thecl_atomic_xchgfunction atomically sets a value of a 32-bit signed integer and returns the initial value.

**SYNOPSIS**

CL_EXPORT int32_t CL_APIcl_atomic_xchg( IN atomic32_t* const p_value, IN const int32_t new_value );

**PARAMETERS**

p_value [in] Pointer to a 32-bit integer to exchange with new_value. new_value [in] Value to assign.

**RETURN VALUE**

Returns the initial value pointed to by p_value.

**NOTES**

The provided value is exchanged with new_value and its initial value returned in one atomic operation.cl_atomic_xchgmaintains data consistency without requiring additional synchronization mechanisms in multi-threaded environments.

**SEE ALSO**

Atomic Operations, cl_atomic_inc, cl_atomic_dec, cl_atomic_add, cl_atomic_sub, cl_atomic_comp_xchg