summaryrefslogtreecommitdiff
path: root/sql/scheduler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/scheduler.cc')
-rw-r--r--sql/scheduler.cc21
1 files changed, 14 insertions, 7 deletions
diff --git a/sql/scheduler.cc b/sql/scheduler.cc
index bc3166210b5..2a0138d06a8 100644
--- a/sql/scheduler.cc
+++ b/sql/scheduler.cc
@@ -22,9 +22,9 @@
#pragma implementation
#endif
+#include "mysqld.h"
#include "sql_connect.h" // init_new_connection_handler_thread
#include "scheduler.h"
-#include "mysqld.h"
#include "sql_class.h"
#include "sql_callback.h"
#include <violite.h>
@@ -35,7 +35,8 @@
static bool no_threads_end(THD *thd, bool put_in_cache)
{
- unlink_thd(thd);
+ if (thd)
+ unlink_thd(thd);
return 1; // Abort handle_one_connection
}
@@ -81,7 +82,9 @@ static void scheduler_wait_net_end(void) {
one_thread_scheduler() or one_thread_per_connection_scheduler() in
mysqld.cc, so this init function will always be called.
*/
-void scheduler_init() {
+
+void scheduler_init()
+{
thr_set_lock_wait_callback(scheduler_wait_lock_begin,
scheduler_wait_lock_end);
thr_set_sync_wait_callback(scheduler_wait_sync_begin,
@@ -118,7 +121,6 @@ void post_kill_notification(THD *thd)
#ifndef EMBEDDED_LIBRARY
-
void one_thread_per_connection_scheduler(scheduler_functions *func,
ulong *arg_max_connections,
uint *arg_connection_count)
@@ -132,6 +134,14 @@ void one_thread_per_connection_scheduler(scheduler_functions *func,
func->end_thread= one_thread_per_connection_end;
func->post_kill_notification= post_kill_notification;
}
+#else
+bool init_new_connection_handler_thread()
+{
+ return 0;
+}
+void handle_connection_in_main_thread(CONNECT *connect)
+{
+}
#endif
/*
@@ -144,10 +154,7 @@ void one_thread_scheduler(scheduler_functions *func)
func->max_threads= 1;
func->max_connections= &max_connections;
func->connection_count= &connection_count;
-#ifndef EMBEDDED_LIBRARY
func->init_new_connection_thread= init_new_connection_handler_thread;
func->add_connection= handle_connection_in_main_thread;
-#endif
func->end_thread= no_threads_end;
}
-