[前][次][番号順一覧][スレッド一覧]

ruby-changes:21415

From: nobu <ko1@a...>
Date: Fri, 14 Oct 2011 05:58:19 +0900 (JST)
Subject: [ruby-changes:21415] nobu:r33464 (trunk): * atomic.h (ATOMIC_INC, ATOMIC_DEC): return old values.

nobu	2011-10-14 05:58:08 +0900 (Fri, 14 Oct 2011)

  New Revision: 33464

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=33464

  Log:
    * 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.

  Modified files:
    trunk/ChangeLog
    trunk/atomic.h
    trunk/signal.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 33463)
+++ ChangeLog	(revision 33464)
@@ -1,3 +1,11 @@
+Fri Oct 14 05:58:05 2011  Nobuyoshi Nakada  <nobu@r...>
+
+	* 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.
+
 Thu Oct 13 19:29:40 2011  Naohisa Goto  <ngotogenome@g...>
 
 	* atomic.h (ATOMIC_*): use atomic_ops(3C) when SunStudio on Solaris.
Index: atomic.h
===================================================================
--- atomic.h	(revision 33463)
+++ atomic.h	(revision 33464)
@@ -54,11 +54,12 @@
 
 #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
Index: signal.c
===================================================================
--- signal.c	(revision 33463)
+++ signal.c	(revision 33464)
@@ -18,7 +18,7 @@
 #include <errno.h>
 #include "atomic.h"
 
-#if !defined(_WIN32) && !defined(HAVE_GCC_ATOMIC_BUILTINS)
+#ifdef NEED_RUBY_ATOMIC_EXCHANGE
 rb_atomic_t
 ruby_atomic_exchange(rb_atomic_t *ptr, rb_atomic_t val)
 {

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]