From 55bc98f87d824e2803141aef1632fffc6eef4496 Mon Sep 17 00:00:00 2001 From: brain Date: Tue, 17 May 2005 01:40:40 +0000 Subject: Experimental: Epoll support git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1408 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/commands.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/commands.cpp') diff --git a/src/commands.cpp b/src/commands.cpp index 5ffd870da..5011b7d61 100644 --- a/src/commands.cpp +++ b/src/commands.cpp @@ -24,11 +24,17 @@ using namespace std; #include #include #include + #ifdef USE_KQUEUE #include #include #include #endif + +#ifdef USE_EPOLL +#include +#endif + #include #include #include @@ -68,6 +74,10 @@ using namespace std; extern int kq; #endif +#ifdef USE_EPOLL +int ep; +#endif + extern int MODCOUNT; extern std::vector modules; extern std::vector factory; @@ -920,6 +930,16 @@ void handle_quit(char **parameters, int pcnt, userrec *user) { log(DEBUG,"kqueue: Failed to remove user from queue!"); } +#endif +#ifdef USE_EPOLL + struct epoll_event ev; + ev.events = EPOLLIN | EPOLLET; + ev.data.fd = user->fd; + int i = epoll_ctl(ep, EPOLL_CTL_DEL, user->fd, &ev); + if (i < 0) + { + log(DEBUG,"epoll: List deletion failure!"); + } #endif shutdown(user->fd,2); close(user->fd); -- cgit v1.3.1-10-gc9f91