20#ifdef USE_ATOMICS_GENERIC
25# define DECLARE_MUTEX_LOCKED(name, mem) \
26 apr_thread_mutex_t *name = mutex_hash(mem)
27# define MUTEX_UNLOCK(name) \
29 if (apr_thread_mutex_unlock(name) != APR_SUCCESS) \
33# define DECLARE_MUTEX_LOCKED(name, mem)
34# define MUTEX_UNLOCK(name)
35# warning Be warned: using stubs for all atomic operations
42#define NUM_ATOMIC_HASH 7
44#define ATOMIC_HASH(x) (unsigned int)(((unsigned long)(x)>>2)%(unsigned int)NUM_ATOMIC_HASH)
183 prev = *(
void **)
mem;
198 prev = *(
void **)
mem;
apr_status_t apr__atomic_generic64_init(apr_pool_t *p)
APR Thread Mutex Routines.
apr_uint32_t apr_atomic_add32(volatile apr_uint32_t *mem, apr_uint32_t val)
void apr_atomic_sub32(volatile apr_uint32_t *mem, apr_uint32_t val)
apr_uint32_t apr_atomic_inc32(volatile apr_uint32_t *mem)
apr_uint32_t apr_atomic_xchg32(volatile apr_uint32_t *mem, apr_uint32_t val)
int apr_atomic_dec32(volatile apr_uint32_t *mem)
apr_status_t apr_atomic_init(apr_pool_t *p)
void apr_atomic_set32(volatile apr_uint32_t *mem, apr_uint32_t val)
apr_uint32_t apr_atomic_cas32(volatile apr_uint32_t *mem, apr_uint32_t swap, apr_uint32_t cmp)
apr_uint32_t apr_atomic_read32(volatile apr_uint32_t *mem)
const void apr_status_t(*) apr_status_t(* APR_DECLARE)(void) apr_pool_pre_cleanup_register(apr_pool_t *p
apr_uint32_t apr_uint32_t cmp