Group PJ_ATOMIC¶
- group PJ_ATOMIC
This module provides API to manipulate atomic variables.
Examples¶
For some example codes, please see:
Test: Atomic Variable
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.