Group PJ_ATOMIC

group PJ_ATOMIC

This module provides API to manipulate atomic variables.

Examples

For some example codes, please see:

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.