aboutsummaryrefslogtreecommitdiff
path: root/src/socketengines/socketengine_ports.cpp
diff options
context:
space:
mode:
authorGravatar Attila Molnar2014-02-09 17:31:57 +0100
committerGravatar Attila Molnar2014-02-09 17:31:57 +0100
commit034488fc4aca4fb85c923d881f4b95675eba37b6 (patch)
tree8a6eb0328b49258f667ed346406da949db8bbdb2 /src/socketengines/socketengine_ports.cpp
parentCall DelFd() and SetFd(-1) from SocketEngine::Close(EventHandler*) (diff)
Store the EventHandler* in the kevent/epoll_event/portev struct
This removes the need to call GetRef() for every socket in DispatchEvents()
Diffstat (limited to 'src/socketengines/socketengine_ports.cpp')
-rw-r--r--src/socketengines/socketengine_ports.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/socketengines/socketengine_ports.cpp b/src/socketengines/socketengine_ports.cpp
index d7425813e..c30400107 100644
--- a/src/socketengines/socketengine_ports.cpp
+++ b/src/socketengines/socketengine_ports.cpp
@@ -157,8 +157,8 @@ int SocketEngine::DispatchEvents()
// Copy these in case the vector gets resized and ev invalidated
const int fd = ev.portev_object;
const int portev_events = ev.portev_events;
- EventHandler* eh = GetRef(fd);
- if (!eh)
+ EventHandler* eh = static_cast<EventHandler*>(ev.portev_user);
+ if (eh->GetFd() < 0)
continue;
int mask = eh->GetEventMask();