+ wxLogTrace(wxSelectDispatcher_Trace,
+ wxT("Registered fd %d: input:%d, output:%d, exceptional:%d"), fd, (flags & wxFDIO_INPUT) == wxFDIO_INPUT, (flags & wxFDIO_OUTPUT), (flags & wxFDIO_EXCEPTION) == wxFDIO_EXCEPTION);
+ return true;
+}
+
+bool wxSelectDispatcher::ModifyFD(int fd, wxFDIOHandler *handler, int flags)
+{
+ if ( !wxMappedFDIODispatcher::ModifyFD(fd, handler, flags) )
+ return false;
+
+ wxASSERT_MSG( fd <= m_maxFD, wxT("logic error: registered fd > m_maxFD?") );
+
+ wxLogTrace(wxSelectDispatcher_Trace,
+ wxT("Modified fd %d: input:%d, output:%d, exceptional:%d"), fd, (flags & wxFDIO_INPUT) == wxFDIO_INPUT, (flags & wxFDIO_OUTPUT) == wxFDIO_OUTPUT, (flags & wxFDIO_EXCEPTION) == wxFDIO_EXCEPTION);
+ return m_sets.SetFD(fd, flags);
+}
+
+bool wxSelectDispatcher::UnregisterFD(int fd)
+{
+ m_sets.ClearFD(fd);
+
+ if ( !wxMappedFDIODispatcher::UnregisterFD(fd) )
+ return false;
+
+ // remove the handler if we don't need it any more
+ if ( !m_sets.HasFD(fd) )
+ {
+ if ( fd == m_maxFD )