#ifndef WX_PRECOMP
#include "wx/hash.h"
#include "wx/app.h"
+ #include "wx/window.h"
+ #include "wx/timer.h"
+ #include "wx/module.h"
#endif
-#include "wx/window.h"
#include "wx/tooltip.h"
-#include "wx/timer.h"
-#include "wx/module.h"
#include "wx/unix/private.h"
#include "wx/x11/private.h"
#include "X11/Xlib.h"
#include <sys/time.h>
#include <unistd.h>
+#ifdef HAVE_SYS_SELECT_H
+# include <sys/select.h>
+#endif
+
#if wxUSE_SOCKETS
// ----------------------------------------------------------------------------
// wxSocketTable
wxSocketTable(): wxHashTable(wxKEY_INTEGER)
{
}
- ~wxSocketTable()
+ virtual ~wxSocketTable()
{
WX_CLEAR_HASH_TABLE(*this)
}
m_impl->m_keepGoing = true;
while ( m_impl->m_keepGoing )
{
-#if 0 // wxUSE_THREADS
- wxMutexGuiLeaveOrEnter();
-#endif // wxUSE_THREADS
-
// generate and process idle events for as long as we don't have
// anything else to do
while ( ! Pending() )
#endif
if (!m_impl->SendIdleEvent())
{
-#if 0 // wxUSE_THREADS
- // leave the main loop to give other threads a chance to
- // perform their GUI work
- wxMutexGuiLeave();
- wxUsleep(20);
- wxMutexGuiEnter();
-#endif
// Break out of while loop
break;
}
}
}
+ OnExit();
+
int exitcode = m_impl->GetExitCode();
delete m_impl;
m_impl = NULL;
{
XEvent event;
+ // Start off by checking if any of our child processes have finished.
+ wxCheckForFinishedChildren();
+
// TODO allowing for threads, as per e.g. wxMSW
// This now waits until either an X event is received,