diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 896114f98c6..394dd3294de 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -648,7 +648,6 @@ static void close_connections(void) } #endif end_thr_alarm(0); // Abort old alarms. - end_slave(); /* First signal all threads that it's time to die @@ -664,6 +663,9 @@ static void close_connections(void) { DBUG_PRINT("quit",("Informing thread %ld that it's time to die", tmp->thread_id)); + /* We skip slave threads on this first loop through. */ + if (tmp->slave_thread) continue; + tmp->killed= 1; if (tmp->mysys_var) { @@ -680,6 +682,8 @@ static void close_connections(void) } (void) pthread_mutex_unlock(&LOCK_thread_count); // For unlink from list + end_slave(); + if (thread_count) sleep(2); // Give threads time to die