Make EPOLLET the default
The whole worker thread mechanism assumes EPOLLET and non-blocking descriptors, so that should be the default. TODO: In debug mode, check that the provided file descriptor indeed is non-blocking.
This commit is contained in:
@ -76,7 +76,9 @@ typedef struct mxs_poll_data
|
|||||||
* data->thread.id: Will be updated by `poll_add_fd_to_worker`.
|
* data->thread.id: Will be updated by `poll_add_fd_to_worker`.
|
||||||
*
|
*
|
||||||
* @attention If the descriptor should be added to all workers, then the worker
|
* @attention If the descriptor should be added to all workers, then the worker
|
||||||
* thread id will be 0.
|
* thread id will be 0.
|
||||||
|
*
|
||||||
|
* @attention The provided file descriptor *must* be non-blocking.
|
||||||
*
|
*
|
||||||
* @return 0 on success, non-zero on failure.
|
* @return 0 on success, non-zero on failure.
|
||||||
*/
|
*/
|
||||||
|
@ -291,6 +291,8 @@ static int add_fd_to_worker(int wid, int fd, uint32_t events, MXS_POLL_DATA* dat
|
|||||||
{
|
{
|
||||||
ss_dassert((wid >= 0) && (wid <= n_threads));
|
ss_dassert((wid >= 0) && (wid <= n_threads));
|
||||||
|
|
||||||
|
events |= EPOLLET;
|
||||||
|
|
||||||
struct epoll_event ev;
|
struct epoll_event ev;
|
||||||
|
|
||||||
ev.events = events;
|
ev.events = events;
|
||||||
@ -309,6 +311,8 @@ static int add_fd_to_worker(int wid, int fd, uint32_t events, MXS_POLL_DATA* dat
|
|||||||
|
|
||||||
static int add_fd_to_workers(int fd, uint32_t events, MXS_POLL_DATA* data)
|
static int add_fd_to_workers(int fd, uint32_t events, MXS_POLL_DATA* data)
|
||||||
{
|
{
|
||||||
|
events |= EPOLLET;
|
||||||
|
|
||||||
struct epoll_event ev;
|
struct epoll_event ev;
|
||||||
|
|
||||||
ev.events = events;
|
ev.events = events;
|
||||||
|
Reference in New Issue
Block a user