X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/4fa7d79d61ebd81f53d2db80809746f034d04162..056e1ea46d3a0707ca0bb46af4abd429e55c4196:/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);