summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Vojtovich <svoj@mariadb.org>2018-12-28 01:47:17 +0400
committerSergey Vojtovich <svoj@mariadb.org>2018-12-28 13:24:11 +0400
commitdc90234bda3e2074179a3e54c09a7c9694e69965 (patch)
tree56511b90d36696d23153defeadda83e08a7a4d5b
parent830a7c67a4eefa1091bad4b60617309b9f299c96 (diff)
downloadmariadb-git-dc90234bda3e2074179a3e54c09a7c9694e69965.tar.gz
MDEV-17441 - InnoDB transition to C++11 atomics
Added lf_hash_size() macro, so that callers don't need to use atomic operations.
-rw-r--r--include/lf.h2
-rw-r--r--sql/mdl.cc2
-rw-r--r--sql/table_cache.cc2
-rw-r--r--storage/innobase/include/trx0sys.h6
4 files changed, 5 insertions, 7 deletions
diff --git a/include/lf.h b/include/lf.h
index a9d7e9ee688..fe861a524dc 100644
--- a/include/lf.h
+++ b/include/lf.h
@@ -167,6 +167,8 @@ void *lf_hash_search_using_hash_value(LF_HASH *hash, LF_PINS *pins,
int lf_hash_delete(LF_HASH *hash, LF_PINS *pins, const void *key, uint keylen);
int lf_hash_iterate(LF_HASH *hash, LF_PINS *pins,
my_hash_walk_action action, void *argument);
+#define lf_hash_size(hash) \
+ my_atomic_load32_explicit(&(hash)->count, MY_MEMORY_ORDER_RELAXED)
/*
shortcut macros to access underlying pinbox functions from an LF_HASH
see lf_pinbox_get_pins() and lf_pinbox_put_pins()
diff --git a/sql/mdl.cc b/sql/mdl.cc
index c06a212ed19..19468a124c6 100644
--- a/sql/mdl.cc
+++ b/sql/mdl.cc
@@ -782,7 +782,7 @@ void MDL_map::destroy()
{
delete m_backup_lock;
- DBUG_ASSERT(!my_atomic_load32(&m_locks.count));
+ DBUG_ASSERT(!lf_hash_size(&m_locks));
lf_hash_destroy(&m_locks);
}
diff --git a/sql/table_cache.cc b/sql/table_cache.cc
index c23bb53b9a9..980dd2e4672 100644
--- a/sql/table_cache.cc
+++ b/sql/table_cache.cc
@@ -689,7 +689,7 @@ void tdc_deinit(void)
ulong tdc_records(void)
{
- return my_atomic_load32_explicit(&tdc_hash.count, MY_MEMORY_ORDER_RELAXED);
+ return lf_hash_size(&tdc_hash);
}
diff --git a/storage/innobase/include/trx0sys.h b/storage/innobase/include/trx0sys.h
index e73cbb81c32..92f24d036ae 100644
--- a/storage/innobase/include/trx0sys.h
+++ b/storage/innobase/include/trx0sys.h
@@ -704,11 +704,7 @@ public:
because it may change even before this method returns.
*/
- uint32_t size()
- {
- return uint32_t(my_atomic_load32_explicit(&hash.count,
- MY_MEMORY_ORDER_RELAXED));
- }
+ uint32_t size() { return uint32_t(lf_hash_size(&hash)); }
/**