int __atomic_add_return(int i, atomic_t *v) { int ret; unsigned long flags; spin_lock_irqsave(ATOMIC_HASH(v), flags); ret = (v->counter += i); spin_unlock_irqrestore(ATOMIC_HASH(v), flags); return ret; }
static APR_INLINE apr_thread_mutex_t *mutex_hash(volatile apr_uint32_t *mem) { apr_thread_mutex_t *mutex = hash_mutex[ATOMIC_HASH(mem)]; if (apr_thread_mutex_lock(mutex) != APR_SUCCESS) { abort(); } return mutex; }