Commit 8b945a14 authored by Vladislav Vaintroub's avatar Vladislav Vaintroub

close callbacks prior to closing connection to avoid potential race when e.g...

close callbacks prior to closing connection to avoid potential race when e.g timer callback and connection_destroy run in parallel
parent 0e2197c7
......@@ -404,11 +404,6 @@ void set_wait_timeout(connection_t *connection, ulonglong old_timeout)
/* Connection destructor */
void destroy_connection(connection_t *connection)
{
if (connection->thd)
{
threadpool_remove_connection(connection->thd);
}
if (connection->io)
{
WaitForThreadpoolIoCallbacks(connection->io, TRUE);
......@@ -427,6 +422,11 @@ void destroy_connection(connection_t *connection)
WaitForThreadpoolTimerCallbacks(connection->timer, TRUE);
CloseThreadpoolTimer(connection->timer);
}
if (connection->thd)
{
threadpool_remove_connection(connection->thd);
}
DestroyThreadpoolEnvironment(&connection->callback_environ);
}
......
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