diff --git a/include/mysql/thread_pool_priv.h b/include/mysql/thread_pool_priv.h index b4b68e6880d..d649655bb8e 100644 --- a/include/mysql/thread_pool_priv.h +++ b/include/mysql/thread_pool_priv.h @@ -35,6 +35,7 @@ #include #include #include +#include /* Needed to get access to scheduler variables */ void* thd_get_scheduler_data(THD *thd); @@ -56,9 +57,30 @@ void thd_unlock_data(THD *thd); bool thd_is_transaction_active(THD *thd); int thd_connection_has_data(THD *thd); void thd_set_net_read_write(THD *thd, uint val); +uint thd_get_net_read_write(THD *thd); void thd_set_mysys_var(THD *thd, st_my_thread_var *mysys_var); +ulong thd_get_net_wait_timeout(THD *thd); my_socket thd_get_fd(THD *thd); +/* Interface class for global thread list iteration */ +class Thread_iterator +{ + public: + Thread_iterator() : m_iterator(threads) {} + THD* next() + { + THD* tmp = m_iterator++; + return tmp; + } + private: + /* + Don't allow copying of this class. + */ + Thread_iterator(const Thread_iterator&); + void operator=(const Thread_iterator&); + I_List_iterator m_iterator; +}; + /* Print to the MySQL error log */ void sql_print_error(const char *format, ...); diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 8931d67dd25..b0d7cac1864 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -254,6 +254,18 @@ PSI_thread *thd_get_psi(THD *thd) return thd->scheduler.m_psi; } +/** + Get net_wait_timeout for THD object + + @param thd THD object + + @retval net_wait_timeout value for thread on THD +*/ +ulong thd_get_net_wait_timeout(THD* thd) +{ + return thd->variables.net_wait_timeout; +} + /** Set reference to Performance Schema object for THD object @@ -422,6 +434,17 @@ void thd_set_net_read_write(THD *thd, uint val) thd->net.reading_or_writing= val; } +/** + Get reading/writing on socket from THD object + @param thd THD object + + @retval net.reading_or_writing value for thread on THD. +*/ +uint thd_get_net_read_write(THD *thd) +{ + return thd->net.reading_or_writing; +} + /** Set reference to mysys variable in THD object