25#ifndef CONNECTION_HANDLER_IMPL_INCLUDED
26#define CONNECTION_HANDLER_IMPL_INCLUDED
This abstract base class represents connection channel information about a new connection.
Definition: channel_info.h:46
This abstract base class represents how connections are processed, most importantly how they map to O...
Definition: connection_handler.h:36
This class represents the connection handling functionality of all connections being handled in a sin...
Definition: connection_handler_impl.h:111
One_thread_connection_handler(const One_thread_connection_handler &)
uint get_max_threads() const override
Definition: connection_handler_impl.h:123
~One_thread_connection_handler() override=default
One_thread_connection_handler()=default
bool add_connection(Channel_info *channel_info) override
Add a connection.
Definition: connection_handler_one_thread.cc:42
One_thread_connection_handler & operator=(const One_thread_connection_handler &)
This class represents the connection handling functionality that each connection is being handled in ...
Definition: connection_handler_impl.h:41
Per_thread_connection_handler()=default
static ulong get_blocked_pthread_count()
Return blocked threads count.
Definition: connection_handler_per_thread.cc:445
static void destroy()
Definition: connection_handler_per_thread.cc:125
static void kill_blocked_pthreads()
Wake blocked pthreads and wait until they have terminated.
Definition: connection_handler_per_thread.cc:382
bool add_connection(Channel_info *channel_info) override
Add a connection.
Definition: connection_handler_per_thread.cc:403
static void modify_thread_cache_size(const ulong thread_cache_size)
Modify the thread cache size.
Definition: connection_handler_per_thread.cc:359
static ulong max_blocked_pthreads
Definition: connection_handler_impl.h:71
bool check_idle_thread_and_enqueue_connection(Channel_info *channel_info)
Check if idle threads to handle connection in thread cache.
Definition: connection_handler_per_thread.cc:386
static bool shrink_cache
Definition: connection_handler_impl.h:69
Per_thread_connection_handler(const Per_thread_connection_handler &)
Per_thread_connection_handler & operator=(const Per_thread_connection_handler &)
static ulong slow_launch_threads
Definition: connection_handler_impl.h:68
~Per_thread_connection_handler() override=default
static mysql_cond_t COND_thread_cache
Definition: connection_handler_impl.h:62
static ulong blocked_pthread_count
Definition: connection_handler_impl.h:67
static std::list< Channel_info * > * waiting_channel_info_list
List of pending channel info objects to be picked by idle threads.
Definition: connection_handler_impl.h:59
uint get_max_threads() const override
Definition: connection_handler_per_thread.cc:441
static mysql_mutex_t LOCK_thread_cache
Definition: connection_handler_impl.h:61
static void init()
Definition: connection_handler_per_thread.cc:108
static Channel_info * block_until_new_connection()
Block until a new connection arrives.
Definition: connection_handler_per_thread.cc:143
static mysql_cond_t COND_flush_thread_cache
Definition: connection_handler_impl.h:63
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:35
Instrumentation helpers for conditions.
Instrumentation helpers for mutexes.
An instrumented cond structure.
Definition: mysql_cond_bits.h:49
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:49