QB_ATOMIC_INT_COMPARE_AND_EXCHANGE(3)

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

SYNOPSIS
#include <qb/qbatomic.h>

int32_t qb_atomic_int_compare_and_exchange(
    volatile int32_t QB_GNUC_MAY_ALIAS   *atomic,  /* a pointer to an integer */
    int32_t                               oldval,  /* the assumed old value of *atomic */
    int32_t                               newval   /* the new value of *atomic*/
);

PARAMS
atomic a pointer to an integer

oldval the assumed old value of *atomic

newval the new value of *atomic

DESCRIPTION

Also acts as a memory barrier.

RETURN VALUE

QB_TRUE, if *atomic was equal oldval. QB_FALSE otherwise.

SEE ALSO

qb_atomic_int_set(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_compare_and_exchange(3), qb_atomic_pointer_set(3)

COPYRIGHT

Copyright (C) 2003 Sebastian Wilhelmi