summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2021-02-01 16:23:49 +0100
committerSergei Golubchik <serg@mariadb.org>2021-02-02 10:02:17 +0100
commit2676c9aad79b66705420922d393a9f498a2a6693 (patch)
treeaf5ce4113d6d8c2602a12c37c5c9b0b706ccfd13 /include
parent251b52190070095e4c65ffb0ae545d49330a02b2 (diff)
downloadmariadb-git-2676c9aad79b66705420922d393a9f498a2a6693.tar.gz
galera fixes related to THD::LOCK_thd_kill
Since 2017 (c2118a08b1) THD::awake() no longer requires LOCK_thd_data. It uses LOCK_thd_kill, and this latter mutex is used to prevent a thread of dying, not LOCK_thd_data as before.
Diffstat (limited to 'include')
-rw-r--r--include/mysql/service_wsrep.h6
-rw-r--r--include/service_versions.h2
2 files changed, 7 insertions, 1 deletions
diff --git a/include/mysql/service_wsrep.h b/include/mysql/service_wsrep.h
index e9c3b0fa86a..671ef515135 100644
--- a/include/mysql/service_wsrep.h
+++ b/include/mysql/service_wsrep.h
@@ -119,6 +119,8 @@ extern struct wsrep_service_st {
my_bool (*wsrep_thd_is_applier_func)(MYSQL_THD);
void (*wsrep_report_bf_lock_wait_func)(MYSQL_THD thd,
unsigned long long trx_id);
+ void (*wsrep_thd_kill_LOCK_func)(THD *thd);
+ void (*wsrep_thd_kill_UNLOCK_func)(THD *thd);
} *wsrep_service;
#ifdef MYSQL_DYNAMIC_PLUGIN
@@ -143,6 +145,8 @@ extern struct wsrep_service_st {
#define wsrep_run_wsrep_commit(T,A) wsrep_service->wsrep_run_wsrep_commit_func(T,A)
#define wsrep_thd_LOCK(T) wsrep_service->wsrep_thd_LOCK_func(T)
#define wsrep_thd_UNLOCK(T) wsrep_service->wsrep_thd_UNLOCK_func(T)
+#define wsrep_thd_kill_LOCK(T) wsrep_service->wsrep_thd_kill_LOCK_func(T)
+#define wsrep_thd_kill_UNLOCK(T) wsrep_service->wsrep_thd_kill_UNLOCK_func(T)
#define wsrep_thd_awake(T,S) wsrep_service->wsrep_thd_awake_func(T,S)
#define wsrep_thd_conflict_state(T,S) wsrep_service->wsrep_thd_conflict_state_func(T,S)
#define wsrep_thd_conflict_state_str(T) wsrep_service->wsrep_thd_conflict_state_str_func(T)
@@ -226,6 +230,8 @@ void wsrep_lock_rollback();
void wsrep_post_commit(THD* thd, bool all);
void wsrep_thd_LOCK(THD *thd);
void wsrep_thd_UNLOCK(THD *thd);
+void wsrep_thd_kill_LOCK(THD *thd);
+void wsrep_thd_kill_UNLOCK(THD *thd);
void wsrep_thd_awake(THD *thd, my_bool signal);
void wsrep_thd_set_conflict_state(THD *thd, enum wsrep_conflict_state state);
bool wsrep_thd_ignore_table(THD *thd);
diff --git a/include/service_versions.h b/include/service_versions.h
index 6e138fab5a4..09ba702a225 100644
--- a/include/service_versions.h
+++ b/include/service_versions.h
@@ -41,4 +41,4 @@
#define VERSION_thd_specifics 0x0100
#define VERSION_thd_timezone 0x0100
#define VERSION_thd_wait 0x0100
-#define VERSION_wsrep 0x0202
+#define VERSION_wsrep 0x0203