Commit 8d319b1f authored by Mikael Ronström's avatar Mikael Ronström

Simplifications of server interface to scheduler

parent af948cd6
...@@ -34,11 +34,27 @@ ...@@ -34,11 +34,27 @@
*/ */
#define MYSQL_SERVER 1 #define MYSQL_SERVER 1
#include <sql_class.h> #include <sql_class.h>
#include <scheduler.h>
#include <debug_sync.h> #include <debug_sync.h>
#include <sql_profile.h> #include <sql_profile.h>
#include <table.h> #include <table.h>
struct scheduler_functions
{
uint max_threads;
bool (*init)(void);
bool (*init_new_connection_thread)(void);
void (*add_connection)(THD *thd);
void (*thd_wait_begin)(THD *thd, int wait_type);
void (*thd_wait_end)(THD *thd);
void (*post_kill_notification)(THD *thd);
bool (*end_thread)(THD *thd, bool cache_thread);
void (*end)(void);
};
/* Needed to get access to scheduler variables */
void* thd_get_scheduler(THD *thd);
PSI_thread* thd_get_psi(THD *thd);
/* /*
The thread pool must be able to execute commands using the connection The thread pool must be able to execute commands using the connection
state in THD object. This is the main objective of the thread pool to state in THD object. This is the main objective of the thread pool to
......
...@@ -160,6 +160,16 @@ thd_scheduler::~thd_scheduler() ...@@ -160,6 +160,16 @@ thd_scheduler::~thd_scheduler()
{ {
} }
void* thd_get_scheduler(THD *thd)
{
return thd->scheduler.data;
}
PSI_thread* thd_get_psi(THD *thd)
{
return thd->scheduler.m_psi;
}
static scheduler_functions *saved_thread_scheduler; static scheduler_functions *saved_thread_scheduler;
static uint saved_thread_handling; static uint saved_thread_handling;
......
...@@ -72,11 +72,6 @@ enum scheduler_types ...@@ -72,11 +72,6 @@ enum scheduler_types
void one_thread_per_connection_scheduler(); void one_thread_per_connection_scheduler();
void one_thread_scheduler(); void one_thread_scheduler();
enum pool_command_op
{
NOT_IN_USE_OP= 0, NORMAL_OP= 1, CONNECT_OP, KILL_OP, DIE_OP
};
/* /*
To be used for pool-of-threads (implemeneted differently on various OSs) To be used for pool-of-threads (implemeneted differently on various OSs)
*/ */
...@@ -101,6 +96,9 @@ class thd_scheduler ...@@ -101,6 +96,9 @@ class thd_scheduler
~thd_scheduler(); ~thd_scheduler();
}; };
void *thd_get_scheduler(THD *thd);
PSI_thread* thd_get_psi(THD *thd);
extern scheduler_functions *thread_scheduler; extern scheduler_functions *thread_scheduler;
#endif #endif
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