From c96c193e1d8d6ec45749c8ab49e5be99771fab7c Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 13 Oct 2011 20:58:08 +0000 Subject: * atomic.h (ATOMIC_INC, ATOMIC_DEC): return old values. [ruby-dev:44596] [Bug #5439] * signal.c (ruby_atomic_exchange): no needs to define on the platforms where atomic.h is available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33464 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- atomic.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'atomic.h') diff --git a/atomic.h b/atomic.h index d131677aa6..33f731927d 100644 --- a/atomic.h +++ b/atomic.h @@ -54,11 +54,12 @@ typedef unsigned int rb_atomic_t; #else typedef int rb_atomic_t; +#define NEED_RUBY_ATOMIC_EXCHANGE extern rb_atomic_t ruby_atomic_exchange(rb_atomic_t *ptr, rb_atomic_t val); # define ATOMIC_SET(var, val) (void)((var) = (val)) -# define ATOMIC_INC(var) (++(var)) -# define ATOMIC_DEC(var) (--(var)) +# define ATOMIC_INC(var) ((var)++) +# define ATOMIC_DEC(var) ((var)--) # define ATOMIC_OR(var, val) ((var) |= (val)) # define ATOMIC_EXCHANGE(var, val) ruby_atomic_exchange(&(var), (val)) #endif -- cgit v1.2.3