X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/c3db6f7e2ed8432450c1ed4ad4989dd13eced351..f4c9742568a27f565ebc2902491ef64038da20da:/core/events-epoll.c diff --git a/core/events-epoll.c b/core/events-epoll.c index 3dfb537b..b9455c34 100644 --- a/core/events-epoll.c +++ b/core/events-epoll.c @@ -1,5 +1,5 @@ /* - * events.c: the event handling core, poll() version + * events.c: the event handling core, epoll() version */ #include @@ -46,12 +46,17 @@ void inithandlers() { /* Get an epoll FD */ if ((epollfd=epoll_create(STARTFDS))<0) { - Error("events",ERR_FATAL,"Unable to initialise epoll."); + Error("events",ERR_STOP,"Unable to initialise epoll."); } registerhook(HOOK_CORE_STATSREQUEST, &eventstats); } +void finihandlers() { + deregisterhook(HOOK_CORE_STATSREQUEST, &eventstats); + free(eventhandlers); +} + /* * checkindex(): * Given the number of a new file descriptor, makes sure that the array @@ -117,6 +122,7 @@ int registerhandler(int fd, short events, FDHandler handler) { eventhandlers[fd].handler=handler; + memset(&epe, 0, sizeof(epe)); epe.data.fd=fd; epe.events=polltoepoll(events);