summaryrefslogtreecommitdiff
path: root/sql/wsrep_thd.cc
diff options
context:
space:
mode:
authorNirbhay Choubey <nirbhay@skysql.com>2014-06-10 17:00:32 -0400
committerNirbhay Choubey <nirbhay@skysql.com>2014-06-10 17:00:32 -0400
commitc29cbac2eb06ab4a2bf1aeda65c15fce40a84345 (patch)
tree9d5b5dab4dfd0fe78084b0654cd06d6f3fc1171b /sql/wsrep_thd.cc
parent90ead99572c8168583cb0943792d964cc2a6abd2 (diff)
downloadmariadb-git-c29cbac2eb06ab4a2bf1aeda65c15fce40a84345.tar.gz
bzr merge -r3985..3997 codership/5.5
Diffstat (limited to 'sql/wsrep_thd.cc')
-rw-r--r--sql/wsrep_thd.cc15
1 files changed, 12 insertions, 3 deletions
diff --git a/sql/wsrep_thd.cc b/sql/wsrep_thd.cc
index 3fed6db6d0d..132cfc7c5d2 100644
--- a/sql/wsrep_thd.cc
+++ b/sql/wsrep_thd.cc
@@ -23,11 +23,20 @@
#include "sql_base.h" // close_thread_tables()
#include "mysqld.h" // start_wsrep_THD();
-static long long wsrep_bf_aborts_counter = 0;
+
+#if (__LP64__)
+static volatile int64 wsrep_bf_aborts_counter(0);
+#define WSREP_ATOMIC_LOAD_LONG my_atomic_load64
+#define WSREP_ATOMIC_ADD_LONG my_atomic_add64
+#else
+static volatile int32 wsrep_bf_aborts_counter(0);
+#define WSREP_ATOMIC_LOAD_LONG my_atomic_load32
+#define WSREP_ATOMIC_ADD_LONG my_atomic_add32
+#endif
int wsrep_show_bf_aborts (THD *thd, SHOW_VAR *var, char *buff)
{
- wsrep_local_bf_aborts = my_atomic_load64(&wsrep_bf_aborts_counter);
+ wsrep_local_bf_aborts = WSREP_ATOMIC_LOAD_LONG(&wsrep_bf_aborts_counter);
var->type = SHOW_LONGLONG;
var->value = (char*)&wsrep_local_bf_aborts;
return 0;
@@ -39,7 +48,7 @@ void wsrep_client_rollback(THD *thd)
WSREP_DEBUG("client rollback due to BF abort for (%ld), query: %s",
thd->thread_id, thd->query());
- my_atomic_add64(&wsrep_bf_aborts_counter, 1);
+ WSREP_ATOMIC_ADD_LONG(&wsrep_bf_aborts_counter, 1);
thd->wsrep_conflict_state= ABORTING;
mysql_mutex_unlock(&thd->LOCK_wsrep_thd);