thread_scheduler是线程控制变量,今天翻遍了mysqld.cc,终于找到了初始化位置,记录一下。
mysqld.cc :static int get_options(int *argc,char **argv)
#ifdef EMBEDDED_LIBRARY one_thread_scheduler(&thread_scheduler); #else if (global_system_variables.thread_handling <= SCHEDULER_ONE_THREAD_PER_CONNECTION) one_thread_per_connection_scheduler(&thread_scheduler); else if (global_system_variables.thread_handling == SCHEDULER_NO_THREADS) one_thread_scheduler(&thread_scheduler); else pool_of_threads_scheduler(&thread_scheduler); /* purecov: tested */ #endif
两个函数来初始化:
one_thread_per_connection_scheduler
one_thread_scheduler(&thread_scheduler)