Commit 89ec5426 authored by Mikael Ronström's avatar Mikael Ronström

Split up unlink_thd in several functions

parent e44579d2
...@@ -94,8 +94,10 @@ bool thd_is_connection_alive(THD *thd); ...@@ -94,8 +94,10 @@ bool thd_is_connection_alive(THD *thd);
void close_connection(THD *thd, uint errcode); void close_connection(THD *thd, uint errcode);
/* End the connection before closing it */ /* End the connection before closing it */
void end_connection(THD *thd); void end_connection(THD *thd);
/* Decrement connection counter */
void dec_connection_count();
/* Destroy THD object */ /* Destroy THD object */
void unlink_thd(THD *thd); void delete_thd(THD *thd);
/* /*
thread_created is maintained by thread pool when activated since thread_created is maintained by thread pool when activated since
......
...@@ -2009,6 +2009,36 @@ extern "C" sig_handler end_thread_signal(int sig __attribute__((unused))) ...@@ -2009,6 +2009,36 @@ extern "C" sig_handler end_thread_signal(int sig __attribute__((unused)))
} }
/*
Decrease number of connections
SYNOPSIS
dec_connection_count()
*/
void dec_connection_count()
{
mysql_mutex_lock(&LOCK_connection_count);
--connection_count;
mysql_mutex_unlock(&LOCK_connection_count);
}
/*
Delete the THD object and decrease number of threads
SYNOPSIS
delete_thd()
thd Thread handler
*/
void delete_thd(THD *thd)
{
thread_count--;
delete thd;
}
/* /*
Unlink thd from global list of available connections and free thd Unlink thd from global list of available connections and free thd
...@@ -2024,15 +2054,10 @@ void unlink_thd(THD *thd) ...@@ -2024,15 +2054,10 @@ void unlink_thd(THD *thd)
{ {
DBUG_ENTER("unlink_thd"); DBUG_ENTER("unlink_thd");
DBUG_PRINT("enter", ("thd: 0x%lx", (long) thd)); DBUG_PRINT("enter", ("thd: 0x%lx", (long) thd));
thd->cleanup();
mysql_mutex_lock(&LOCK_connection_count);
--connection_count;
mysql_mutex_unlock(&LOCK_connection_count);
dec_connection_count();
mysql_mutex_lock(&LOCK_thread_count); mysql_mutex_lock(&LOCK_thread_count);
thread_count--; delete_thd(thd);
delete thd;
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment