diff options
author | Sergey Vojtovich <svoj@mariadb.org> | 2018-12-28 01:47:17 +0400 |
---|---|---|
committer | Sergey Vojtovich <svoj@mariadb.org> | 2018-12-28 13:24:11 +0400 |
commit | dc90234bda3e2074179a3e54c09a7c9694e69965 (patch) | |
tree | 56511b90d36696d23153defeadda83e08a7a4d5b | |
parent | 830a7c67a4eefa1091bad4b60617309b9f299c96 (diff) | |
download | mariadb-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.h | 2 | ||||
-rw-r--r-- | sql/mdl.cc | 2 | ||||
-rw-r--r-- | sql/table_cache.cc | 2 | ||||
-rw-r--r-- | storage/innobase/include/trx0sys.h | 6 |
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)); } /** |