MXS-2196: Don't force epoll flags

The epoll event flags are now fully controlled by the caller of the
Worker::add_fd function. This makes the mechanism more generic and allows
both edge triggered and level triggered behavior.
This commit is contained in:
Markus Mäkelä
2018-12-01 20:29:22 +02:00
parent 7ea22c3d16
commit 192562d930
2 changed files with 2 additions and 5 deletions

View File

@ -246,7 +246,7 @@ bool MessageQueue::add_to_worker(Worker* pWorker)
m_pWorker = NULL;
}
if (pWorker->add_fd(m_read_fd, EPOLLIN, this))
if (pWorker->add_fd(m_read_fd, EPOLLIN | EPOLLET, this))
{
m_pWorker = pWorker;
}

View File

@ -186,7 +186,7 @@ WorkerTimer::WorkerTimer(Worker* pWorker)
if (m_fd != -1)
{
if (!m_pWorker->add_fd(m_fd, EPOLLIN, this))
if (!m_pWorker->add_fd(m_fd, EPOLLIN | EPOLLET, this))
{
MXB_ALERT("Could not add timer descriptor to worker, system will not work.");
::close(m_fd);
@ -359,9 +359,6 @@ bool Worker::add_fd(int fd, uint32_t events, MXB_POLL_DATA* pData)
{
bool rv = true;
// Must be edge-triggered.
events |= EPOLLET;
struct epoll_event ev;
ev.events = events;