1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* 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
This commit is contained in:
nobu 2011-10-13 20:58:08 +00:00
parent 5558de40b6
commit c96c193e1d
3 changed files with 12 additions and 3 deletions

View file

@ -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