summaryrefslogtreecommitdiffstats
path: root/storage/perfschema/pfs_variable.h
diff options
context:
space:
mode:
Diffstat (limited to 'storage/perfschema/pfs_variable.h')
-rw-r--r--storage/perfschema/pfs_variable.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/storage/perfschema/pfs_variable.h b/storage/perfschema/pfs_variable.h
index d3ad4c7f..7dc24826 100644
--- a/storage/perfschema/pfs_variable.h
+++ b/storage/perfschema/pfs_variable.h
@@ -211,8 +211,12 @@ public:
if (thd != m_unsafe_thd)
return false;
- /* Hold this lock to keep THD during materialization. */
- mysql_mutex_lock(&thd->LOCK_thd_data);
+ /*
+ Hold this lock to keep THD during materialization.
+ But don't lock current_thd (to be able to use set_killed() later
+ */
+ if (thd != current_thd)
+ mysql_mutex_lock(&thd->LOCK_thd_kill);
return true;
}
void set_unsafe_thd(THD *unsafe_thd) { m_unsafe_thd= unsafe_thd; }