1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

Simplifications of server interface to scheduler

This commit is contained in:
Mikael Ronström
2011-02-10 19:24:31 +01:00
parent af948cd6fc
commit 8d319b1f29
3 changed files with 30 additions and 6 deletions

View File

@@ -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

View File

@@ -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;

View File

@@ -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 @@ public:
~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