22 # error Not implemented in C++. 34 # include <stdatomic.h> 44 atomic_init(&rc->
refs, 1);
50 uintptr_t prev = atomic_fetch_add_explicit(&rc->
refs, 1, memory_order_relaxed);
58 uintptr_t prev = atomic_fetch_sub_explicit(&rc->
refs, 1, memory_order_acq_rel);
Definition: vlc_atomic.h:38
static bool vlc_atomic_rc_dec(vlc_atomic_rc_t *rc)
Decrement the RC and return true if it reaches 0.
Definition: vlc_atomic.h:57
#define VLC_UNUSED(x)
Definition: vlc_common.h:1102
This file is a collection of common definitions and types.
atomic_uintptr_t refs
Definition: vlc_atomic.h:39
#define vlc_assert(pred)
Run-time assertion.
Definition: vlc_common.h:267
struct vlc_atomic_rc_t vlc_atomic_rc_t
static void vlc_atomic_rc_init(vlc_atomic_rc_t *rc)
Init the RC to 1.
Definition: vlc_atomic.h:43
static void vlc_atomic_rc_inc(vlc_atomic_rc_t *rc)
Increment the RC.
Definition: vlc_atomic.h:49