Group PJ_ATOMIC
- group PJ_ATOMIC
This module provides API to manipulate atomic variables.
Examples
For some example codes, please see:
Atomic Variable test: pjlib/src/pjlib-test/atomic.c
Functions
-
pj_status_t pj_atomic_create(pj_pool_t *pool, pj_atomic_value_t initial, pj_atomic_t **atomic)
Create atomic variable.
- Parameters:
pool – The pool.
initial – The initial value of the atomic variable.
atomic – Pointer to hold the atomic variable upon return.
- Returns:
PJ_SUCCESS on success, or the error code.
-
pj_status_t pj_atomic_destroy(pj_atomic_t *atomic_var)
Destroy atomic variable.
- Parameters:
atomic_var – the atomic variable.
- Returns:
PJ_SUCCESS if success.
-
void pj_atomic_set(pj_atomic_t *atomic_var, pj_atomic_value_t value)
Set the value of an atomic type, and return the previous value.
- Parameters:
atomic_var – the atomic variable.
value – value to be set to the variable.
-
pj_atomic_value_t pj_atomic_get(pj_atomic_t *atomic_var)
Get the value of an atomic type.
- Parameters:
atomic_var – the atomic variable.
- Returns:
the value of the atomic variable.
-
void pj_atomic_inc(pj_atomic_t *atomic_var)
Increment the value of an atomic type.
- Parameters:
atomic_var – the atomic variable.
-
pj_atomic_value_t pj_atomic_inc_and_get(pj_atomic_t *atomic_var)
Increment the value of an atomic type and get the result.
- Parameters:
atomic_var – the atomic variable.
- Returns:
The incremented value.
-
void pj_atomic_dec(pj_atomic_t *atomic_var)
Decrement the value of an atomic type.
- Parameters:
atomic_var – the atomic variable.
-
pj_atomic_value_t pj_atomic_dec_and_get(pj_atomic_t *atomic_var)
Decrement the value of an atomic type and get the result.
- Parameters:
atomic_var – the atomic variable.
- Returns:
The decremented value.
-
void pj_atomic_add(pj_atomic_t *atomic_var, pj_atomic_value_t value)
Add a value to an atomic type.
- Parameters:
atomic_var – The atomic variable.
value – Value to be added.
-
pj_atomic_value_t pj_atomic_add_and_get(pj_atomic_t *atomic_var, pj_atomic_value_t value)
Add a value to an atomic type and get the result.
- Parameters:
atomic_var – The atomic variable.
value – Value to be added.
- Returns:
The result after the addition.