diff options
author | unknown <davi@mysql.com/endora.local> | 2008-01-11 20:34:36 -0200 |
---|---|---|
committer | unknown <davi@mysql.com/endora.local> | 2008-01-11 20:34:36 -0200 |
commit | 26af3c7e351483496db87ba08394cad4ae034a95 (patch) | |
tree | 115e267d95776235581c61a21bf888c7e7690075 /include/atomic/nolock.h | |
parent | 44101143f7668cc753f9f78057f164469b051760 (diff) | |
download | mariadb-git-26af3c7e351483496db87ba08394cad4ae034a95.tar.gz |
Bug#33728 Atomic builtins
Use compiler provided atomic builtins as a 'backend' for
MySQL's atomic primitives. The builtins are available on
a handful of platforms and compilers.
configure.in:
Check if the compiler provides atomic builtins and
that __sync_lock_test_and_set stores the correct value.
include/atomic/nolock.h:
Use the atomic builtins if available.
include/atomic/gcc_builtins.h:
Implement the atomic ADD, SWAP, CAS, STORE (or operation
optimized away) and LOAD primitives using atomic builtins
provided by the compiler.
Diffstat (limited to 'include/atomic/nolock.h')
-rw-r--r-- | include/atomic/nolock.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/include/atomic/nolock.h b/include/atomic/nolock.h index f15c8b13b7f..10ac17884b6 100644 --- a/include/atomic/nolock.h +++ b/include/atomic/nolock.h @@ -13,7 +13,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#if defined(__i386__) || defined(_M_IX86) +#if defined(__i386__) || defined(_M_IX86) || defined(HAVE_GCC_ATOMIC_BUILTINS) #ifdef MY_ATOMIC_MODE_DUMMY # define LOCK "" @@ -21,7 +21,9 @@ # define LOCK "lock" #endif -#ifdef __GNUC__ +#ifdef HAVE_GCC_ATOMIC_BUILTINS +#include "gcc_builtins.h" +#elif __GNUC__ #include "x86-gcc.h" #elif defined(_MSC_VER) #include "x86-msvc.h" |