DOKK / manpages / debian 12 / libqb-dev / qb_atomic_pointer_compare_and_exchange.3.en
QB_ATOMIC_POINTER_COMPARE_AND_EXCHANGE(3) libqb Programmer's Manual QB_ATOMIC_POINTER_COMPARE_AND_EXCHANGE(3)

qb_atomic_pointer_compare_and_exchange - Compares oldval with the pointer pointed to by atomic and if they are equal, atomically exchanges *atomic with newval.

#include <qb/qbatomic.h>

int32_t qb_atomic_pointer_compare_and_exchange(

volatile void *QB_GNUC_MAY_ALIAS *atomic, /* a pointer to a void* */
void *oldval, /* the assumed old value of *atomic */
void *newval /* the new value of *atomic*/ );

atomic a pointer to a void*

oldval the assumed old value of *atomic

newval the new value of *atomic

Also acts as a memory barrier.

QB_TRUE if atomic was equal oldval, else QB_FALSE.

qb_atomic_int_set(3), qb_atomic_int_compare_and_exchange(3), qb_atomic_int_get(3), qb_atomic_int_add(3), qb_atomic_init(3), qb_atomic_pointer_get(3), qb_atomic_int_exchange_and_add(3), qb_atomic_pointer_set(3)

Copyright (C) 2003 Sebastian Wilhelmi

2022-03-23 LIBQB