summaryrefslogtreecommitdiff
path: root/sql/mysqld.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/mysqld.cc')
-rw-r--r--sql/mysqld.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index f53bb9f7451..e8749556084 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -2412,7 +2412,7 @@ static void clean_up_mutexes()
static void set_ports()
{
}
-void close_connection(THD *thd, uint sql_errno)
+void close_connection(THD *thd, uint sql_errno, my_bool locked)
{
}
#else
@@ -2889,7 +2889,7 @@ static void network_init(void)
For the connection that is doing shutdown, this is called twice
*/
-void close_connection(THD *thd, uint sql_errno)
+void close_connection(THD *thd, uint sql_errno, my_bool locked)
{
DBUG_ENTER("close_connection");
@@ -2899,7 +2899,10 @@ void close_connection(THD *thd, uint sql_errno)
thd->print_aborted_warning(3, sql_errno ? ER_DEFAULT(sql_errno)
: "CLOSE_CONNECTION");
- thd->disconnect();
+ if (locked)
+ thd->disconnect_mutexed();
+ else
+ thd->disconnect();
MYSQL_CONNECTION_DONE((int) sql_errno, thd->thread_id);