summaryrefslogtreecommitdiff
path: root/storage/mroonga/ha_mroonga.cpp
diff options
context:
space:
mode:
authorSergey Vojtovich <svoj@mariadb.org>2019-05-16 14:37:08 +0400
committerSergey Vojtovich <svoj@mariadb.org>2019-05-21 17:55:09 +0400
commit00e533c78b4c0578ed8403e9aae040b5f7acdfd4 (patch)
treebb0ff178e19fd36fa7094efb76bff759a1c10c4e /storage/mroonga/ha_mroonga.cpp
parent5c18ba6c8892f4186d5fde8d9105154215a26f40 (diff)
downloadmariadb-git-00e533c78b4c0578ed8403e9aae040b5f7acdfd4.tar.gz
Fixed Mroonga to follow THD ha_data protocol
Use thd_get_ha_data()/thd_set_ha_data() which protect against plugin removal until it has THD ha_data. Do not reset THD ha_data in mrn_close_connection(), cleaner approach is to let ha_close_connection() do it. Part of MDEV-19515 - Improve connect speed
Diffstat (limited to 'storage/mroonga/ha_mroonga.cpp')
-rw-r--r--storage/mroonga/ha_mroonga.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/storage/mroonga/ha_mroonga.cpp b/storage/mroonga/ha_mroonga.cpp
index 0f153e200ef..ca474ede35b 100644
--- a/storage/mroonga/ha_mroonga.cpp
+++ b/storage/mroonga/ha_mroonga.cpp
@@ -1377,11 +1377,10 @@ static void mrn_drop_database(handlerton *hton, char *path)
static int mrn_close_connection(handlerton *hton, THD *thd)
{
MRN_DBUG_ENTER_FUNCTION();
- void *p = *thd_ha_data(thd, mrn_hton_ptr);
+ void *p = thd_get_ha_data(thd, mrn_hton_ptr);
if (p) {
mrn_clear_slot_data(thd);
free(p);
- *thd_ha_data(thd, mrn_hton_ptr) = (void *) NULL;
{
mrn::Lock lock(&mrn_allocated_thds_mutex);
my_hash_delete(&mrn_allocated_thds, (uchar*) thd);
@@ -2040,7 +2039,7 @@ static int mrn_deinit(void *p)
mrn_clear_slot_data(tmp_thd);
void *slot_ptr = mrn_get_slot_data(tmp_thd, false);
if (slot_ptr) free(slot_ptr);
- *thd_ha_data(tmp_thd, mrn_hton_ptr) = (void *) NULL;
+ thd_set_ha_data(tmp_thd, mrn_hton_ptr, 0);
my_hash_delete(&mrn_allocated_thds, (uchar *) tmp_thd);
}
}