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;