26#ifndef CONNECTION_HANDLER_IMPL_INCLUDED
27#define CONNECTION_HANDLER_IMPL_INCLUDED
This abstract base class represents connection channel information about a new connection.
Definition: channel_info.h:47
This abstract base class represents how connections are processed, most importantly how they map to O...
Definition: connection_handler.h:37
This class represents the connection handling functionality of all connections being handled in a sin...
Definition: connection_handler_impl.h:112
One_thread_connection_handler(const One_thread_connection_handler &)
uint get_max_threads() const override
Definition: connection_handler_impl.h:124
~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:43
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:42
Per_thread_connection_handler()=default
static ulong get_blocked_pthread_count()
Return blocked threads count.
Definition: connection_handler_per_thread.cc:446
static void destroy()
Definition: connection_handler_per_thread.cc:126
static void kill_blocked_pthreads()
Wake blocked pthreads and wait until they have terminated.
Definition: connection_handler_per_thread.cc:383
bool add_connection(Channel_info *channel_info) override
Add a connection.
Definition: connection_handler_per_thread.cc:404
static void modify_thread_cache_size(const ulong thread_cache_size)
Modify the thread cache size.
Definition: connection_handler_per_thread.cc:360
static ulong max_blocked_pthreads
Definition: connection_handler_impl.h:72
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:387
static bool shrink_cache
Definition: connection_handler_impl.h:70
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:69
~Per_thread_connection_handler() override=default
static mysql_cond_t COND_thread_cache
Definition: connection_handler_impl.h:63
static ulong blocked_pthread_count
Definition: connection_handler_impl.h:68
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:60
uint get_max_threads() const override
Definition: connection_handler_per_thread.cc:442
static mysql_mutex_t LOCK_thread_cache
Definition: connection_handler_impl.h:62
static void init()
Definition: connection_handler_per_thread.cc:109
static Channel_info * block_until_new_connection()
Block until a new connection arrives.
Definition: connection_handler_per_thread.cc:144
static mysql_cond_t COND_flush_thread_cache
Definition: connection_handler_impl.h:64
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
Instrumentation helpers for conditions.
Instrumentation helpers for mutexes.
An instrumented cond structure.
Definition: mysql_cond_bits.h:50
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:50