mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
WL#5363: Thread Pool Service Interface
In order to allow thread schedulers to be dynamically loaded, it is necessary to make the following changes to the server: - Two new service interfaces - Modifications to InnoDB to inform the thread scheduler of state changes. - Changes to the VIO subsystem for checking if data is available on a socket. - Elimination of remains of the old thread pool implementation. The two new service interfaces introduces are: my_thread_scheduler A service interface to register a thread scheduler. thd_wait A service interface to inform thread scheduler that the thread is about to start waiting. In addition, the patch adds code that: - Add a call to thd_wait for table locks in mysys thd_lock.c by introducing a set function that can be used to set a callback to be used when waiting on a lock and resuming from waiting. - Calling the mysys set function from the server to set the callbacks correctly.
This commit is contained in:
@ -1812,6 +1812,10 @@ public:
|
||||
xid_state.xid.null();
|
||||
free_root(&mem_root,MYF(MY_KEEP_PREALLOC));
|
||||
}
|
||||
my_bool is_active()
|
||||
{
|
||||
return (all.ha_list != NULL);
|
||||
}
|
||||
st_transactions()
|
||||
{
|
||||
bzero((char*)this, sizeof(*this));
|
||||
@ -2734,13 +2738,14 @@ public:
|
||||
virtual void set_statement(Statement *stmt);
|
||||
|
||||
/**
|
||||
Assign a new value to thd->query and thd->query_id.
|
||||
Assign a new value to thd->query and thd->query_id and mysys_var.
|
||||
Protected with LOCK_thd_data mutex.
|
||||
*/
|
||||
void set_query(char *query_arg, uint32 query_length_arg);
|
||||
void set_query_and_id(char *query_arg, uint32 query_length_arg,
|
||||
query_id_t new_query_id);
|
||||
void set_query_id(query_id_t new_query_id);
|
||||
void set_mysys_var(struct st_my_thread_var *new_mysys_var);
|
||||
void enter_locked_tables_mode(enum_locked_tables_mode mode_arg)
|
||||
{
|
||||
DBUG_ASSERT(locked_tables_mode == LTM_NONE);
|
||||
|
Reference in New Issue
Block a user