static void busyloop_sub32(tbox_t *tbox) { do { busyloop_read32(tbox); apr_atomic_sub32(tbox->mem, tbox->postval); } while (--tbox->loop); }
static void busyloop_xchg32(tbox_t *tbox) { apr_uint32_t val; do { busyloop_read32(tbox); val = apr_atomic_xchg32(tbox->mem, tbox->postval); apr_thread_mutex_lock(thread_lock); ABTS_INT_EQUAL(tbox->tc, val, tbox->preval); apr_thread_mutex_unlock(thread_lock); } while (--tbox->loop); }
static void busyloop_dec32(tbox_t *tbox) { apr_uint32_t val; do { busyloop_read32(tbox); val = apr_atomic_dec32(tbox->mem); apr_thread_mutex_lock(thread_lock); ABTS_INT_NEQUAL(tbox->tc, 0, val); apr_thread_mutex_unlock(thread_lock); } while (--tbox->loop); }