From d31a4a84fb81e0f4975690e45d4d3b11a0f3cd5d Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 14 Jul 2007 20:22:27 +0000 Subject: [PATCH] don't leak epoll descriptor git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47473 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/unix/private/epolldispatcher.h | 2 ++ src/unix/epolldispatcher.cpp | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/include/wx/unix/private/epolldispatcher.h b/include/wx/unix/private/epolldispatcher.h index f76cf6e8d7..39bd3a27e5 100644 --- a/include/wx/unix/private/epolldispatcher.h +++ b/include/wx/unix/private/epolldispatcher.h @@ -26,6 +26,8 @@ public: // the caller should delete the returned pointer static wxEpollDispatcher *Create(); + virtual ~wxEpollDispatcher(); + // implement base class pure virtual methods virtual bool RegisterFD(int fd, wxFDIOHandler* handler, int flags = wxFDIO_ALL); virtual bool ModifyFD(int fd, wxFDIOHandler* handler, int flags = wxFDIO_ALL); diff --git a/src/unix/epolldispatcher.cpp b/src/unix/epolldispatcher.cpp index a8cb94910c..8df776cba1 100644 --- a/src/unix/epolldispatcher.cpp +++ b/src/unix/epolldispatcher.cpp @@ -92,6 +92,14 @@ wxEpollDispatcher::wxEpollDispatcher(int epollDescriptor) m_epollDescriptor = epollDescriptor; } +wxEpollDispatcher::~wxEpollDispatcher() +{ + if ( close(m_epollDescriptor) != 0 ) + { + wxLogSysError(_("Error closing epoll descriptor")); + } +} + bool wxEpollDispatcher::RegisterFD(int fd, wxFDIOHandler* handler, int flags) { epoll_event ev; -- 2.45.2