From 0599d7de5844a2f838cdf631b9c88b05010ebe5d Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 9 Dec 2015 06:48:15 +0000 Subject: use atomic operations * regcomp.c (onig_chain_link_add): use atomic operation instead of mutex. * regint.h (ONIG_STATE_{INC,DEC}_THREAD): ditto. * regparse.c (PopFreeNode, node_recycle): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52995 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ruby_atomic.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'ruby_atomic.h') diff --git a/ruby_atomic.h b/ruby_atomic.h index 4bc9f37e0d..52b93efbd1 100644 --- a/ruby_atomic.h +++ b/ruby_atomic.h @@ -42,6 +42,7 @@ typedef unsigned int rb_atomic_t; /* Anything OK */ #pragma intrinsic(_InterlockedOr) #endif typedef LONG rb_atomic_t; +#define SIZEOF_ATOMIC_T SIZEOF_LONG # define ATOMIC_SET(var, val) InterlockedExchange(&(var), (val)) # define ATOMIC_INC(var) InterlockedIncrement(&(var)) @@ -143,6 +144,10 @@ ruby_atomic_size_exchange(size_t *ptr, size_t val) } #endif +#ifndef SIZEOF_ATOMIC_T +#define SIZEOF_ATOMIC_T SIZEOF_INT +#endif + #ifndef ATOMIC_SIZE_INC # define ATOMIC_SIZE_INC(var) ATOMIC_INC(var) #endif -- cgit v1.2.3