提前准备网络编程select和poll模型知识网络编程select和poll模型
1.mysql源码结构体poll和结构体select,详解对照网络编程的select和poll模型
struct poll_info_t
{
struct pollfd m_fds[MAX_SOCKETS];
MYSQL_SOCKET m_pfs_fds[MAX_SOCKETS];
};
struct select_info_t
{
fd_set m_read_fds,m_client_fds;
my_socket m_max_used_connection;
select_info_t() : m_max_used_connection(0)
{ FD_ZERO(&m_client_fds); }
};
2.代码栈分析
->mysqld/main.cc/mysqld_main
->sql/mysqld.cc/mysqld_main
->sql/mysqld.cc/network_init
/*
Connection_acceptor 是一个模板类
template <typename Listener> class Connection_acceptor
三种连接方式分别传入各自的 Listener
Mysqld_socket_listener
Named_pipe_listener
Shared_mem_listener
最常用的是 Mysqld_socket_listener
*/
Mysqld_socket_listener *mysqld_socket_listener= new