MySQL 8.0.40
Source Code Documentation
|
base class of all http request handler threads More...
#include <http_server_plugin.h>
Public Types | |
using | native_handle_type = EventBaseSocket |
Public Member Functions | |
HttpRequestThread () | |
HttpRequestThread (HttpRequestThread &&object) | |
native_handle_type | get_socket_fd () |
void | accept_socket () |
void | set_request_router (HttpRequestRouter &router) |
void | wait_and_dispatch () |
void | break_dispatching () |
void | wait_until_ready () |
Protected Member Functions | |
bool | is_initalized () const |
void | initialization_finished () |
Static Protected Member Functions | |
static void | on_event_loop_ready (native_handle_type, short, void *) |
Protected Attributes | |
EventBase | event_base_ |
EventHttp | event_http_ {&event_base_} |
native_handle_type | accept_fd_ {kEventBaseInvalidSocket} |
WaitableMonitor< bool > | initialized_ {false} |
base class of all http request handler threads
As all threads can accept in parallel this may lead to a thundering herd problem and quite likely it is better to let only one thread accept() and push the socket handling into async-deque and let all workers steal from the queue
|
inline |
|
inline |
void HttpRequestThread::accept_socket | ( | ) |
void HttpRequestThread::break_dispatching | ( | ) |
|
inline |
|
protected |
|
protected |
|
staticprotected |
void HttpRequestThread::set_request_router | ( | HttpRequestRouter & | router | ) |
void HttpRequestThread::wait_and_dispatch | ( | ) |
void HttpRequestThread::wait_until_ready | ( | ) |
|
protected |
|
protected |
|
protected |
|
protected |