summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Selector.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/Selector.cpp')
-rw-r--r--cpp/src/Ice/Selector.cpp30
1 files changed, 24 insertions, 6 deletions
diff --git a/cpp/src/Ice/Selector.cpp b/cpp/src/Ice/Selector.cpp
index 52de030b469..8f16bdd3a12 100644
--- a/cpp/src/Ice/Selector.cpp
+++ b/cpp/src/Ice/Selector.cpp
@@ -379,8 +379,14 @@ Selector::enable(EventHandler* handler, SocketOperation status)
epoll_event event;
memset(&event, 0, sizeof(epoll_event));
event.data.ptr = handler;
- event.events |= newStatus & SocketOperationRead ? EPOLLIN : 0;
- event.events |= newStatus & SocketOperationWrite ? EPOLLOUT : 0;
+ if(newStatus & SocketOperationRead)
+ {
+ event.events |= EPOLLIN;
+ }
+ if(newStatus & SocketOperationWrite)
+ {
+ event.events |= EPOLLOUT;
+ }
if(epoll_ctl(_queueFd, previous ? EPOLL_CTL_MOD : EPOLL_CTL_ADD, fd, &event) != 0)
{
Ice::Error out(_instance->initializationData().logger);
@@ -426,8 +432,14 @@ Selector::disable(EventHandler* handler, SocketOperation status)
epoll_event event;
memset(&event, 0, sizeof(epoll_event));
event.data.ptr = handler;
- event.events |= newStatus & SocketOperationRead ? EPOLLIN : 0;
- event.events |= newStatus & SocketOperationWrite ? EPOLLOUT : 0;
+ if(newStatus & SocketOperationRead)
+ {
+ event.events |= EPOLLIN;
+ }
+ if(newStatus & SocketOperationWrite)
+ {
+ event.events |= EPOLLOUT;
+ }
if(epoll_ctl(_queueFd, newStatus ? EPOLL_CTL_MOD : EPOLL_CTL_DEL, fd, &event) != 0)
{
Ice::Error out(_instance->initializationData().logger);
@@ -929,8 +941,14 @@ Selector::updateSelectorForEventHandler(EventHandler* handler, SocketOperation r
status = static_cast<SocketOperation>(status & ~handler->_disabled);
previous = static_cast<SocketOperation>(previous & ~handler->_disabled);
}
- event.events |= status & SocketOperationRead ? EPOLLIN : 0;
- event.events |= status & SocketOperationWrite ? EPOLLOUT : 0;
+ if(status & SocketOperationRead)
+ {
+ event.events |= EPOLLIN;
+ }
+ if(status & SocketOperationWrite)
+ {
+ event.events |= EPOLLOUT;
+ }
int op;
if(!previous && status)
{