summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ruby_atomic.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/ruby_atomic.h b/ruby_atomic.h
index eaa9fcd869..fa888a1db0 100644
--- a/ruby_atomic.h
+++ b/ruby_atomic.h
@@ -117,7 +117,7 @@ rb_atomic_fetch_add(volatile rb_atomic_t *var, rb_atomic_t val)
static inline rb_atomic_t
rb_atomic_fetch_sub(volatile rb_atomic_t *var, rb_atomic_t val)
{
- return atomic_sub_int_nv(var, val) + val;
+ return atomic_add_int_nv(var, (rb_atomic_t)(-(int)val)) + val;
}
# if defined(_LP64) || defined(_I32LPx)