InterlockedDecrement(&atomic->var);
}
+static_inline int
+rx_atomic_dec_and_read(rx_atomic_t *atomic) {
+ return InterlockedDecrement(&atomic->var);
+}
+
static_inline void
rx_atomic_sub(rx_atomic_t *atomic, int change) {
InterlockedExchangeAdd(&atomic->var, 0 - change);
OSAtomicDecrement32(&atomic->var);
}
+static_inline int
+rx_atomic_dec_and_read(rx_atomic_t *atomic) {
+ return OSAtomicDecrement32(&atomic->var);
+}
+
static_inline void
rx_atomic_sub(rx_atomic_t *atomic, int change) {
OSAtomicAdd32(0 - change, &atomic->var);
atomic_dec_32(&atomic->var);
}
+static_inline int
+rx_atomic_dec_and_read(rx_atomic_t *atomic) {
+ return atomic_dec_32_nv(&atomic->var);
+}
+
static_inline void
rx_atomic_sub(rx_atomic_t *atomic, int change) {
atomic_add_32(&atomic->var, 0 - change);
(void)__sync_fetch_and_sub(&atomic->var, 1);
}
+static_inline int
+rx_atomic_dec_and_read(rx_atomic_t *atomic) {
+ return __sync_sub_and_fetch(&atomic->var, 1);
+}
+
static_inline void
rx_atomic_sub(rx_atomic_t *atomic, int change) {
(void)__sync_fetch_and_sub(&atomic->var, change);
MUTEX_EXIT(&rx_atomic_mutex);
}
+static_inline int
+rx_atomic_dec_and_read(rx_atomic_t *atomic) {
+ int retval;
+ MUTEX_ENTER(&rx_atomic_mutex);
+ atomic->var--;
+ retval = atomic->var;
+ MUTEX_EXIT(&rx_atomic_mutex);
+ return retval;
+}
+
+
static_inline void
rx_atomic_sub(rx_atomic_t *atomic, int change) {
MUTEX_ENTER(&rx_atomic_mutex);