]> git.saurik.com Git - wxWidgets.git/blobdiff - src/unix/evtloopunix.cpp
check that the version of __sync_sub_and_fetch that returns a value is supported...
[wxWidgets.git] / src / unix / evtloopunix.cpp
index ff12e32638aa20b1eaaa1b42431009561a827793..ec07e2559d5ab3c80caf63a48f962a319d0ea272 100644 (file)
@@ -19,7 +19,7 @@
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
-#include "wx/evtloop.h"
+#if wxUSE_CONSOLE_EVENTLOOP
 
 #ifndef WX_PRECOMP
     #include "wx/app.h"
 #endif
 
 #include <errno.h>
+#include "wx/apptrait.h"
+#include "wx/evtloop.h"
 #include "wx/thread.h"
 #include "wx/module.h"
+#include "wx/unix/private/timer.h"
 #include "wx/unix/private/epolldispatcher.h"
 #include "wx/private/selectdispatcher.h"
 
-#if wxUSE_TIMER
-    #include "wx/generic/private/timer.h"
-#endif
-
 #define TRACE_EVENTS _T("events")
 
-//this code should not be compiled when GUI is defined
-//(monolithic build issue)
-#if !wxUSE_GUI
-
 // ===========================================================================
 // wxEventLoop::PipeIOHandler implementation
 // ===========================================================================
@@ -131,15 +126,9 @@ wxConsoleEventLoop::wxConsoleEventLoop()
         return;
     }
 
-#ifdef HAVE_SYS_EPOLL_H
-    m_dispatcher = wxEpollDispatcher::Get();
+    m_dispatcher = wxFDIODispatcher::Get();
     if ( !m_dispatcher )
-#endif // HAVE_SYS_EPOLL_H
-    {
-        m_dispatcher = wxSelectDispatcher::Get();
-    }
-
-    wxCHECK_RET( m_dispatcher, _T("failed to create IO dispatcher") );
+        return;
 
     m_dispatcher->RegisterFD
                   (
@@ -147,7 +136,7 @@ wxConsoleEventLoop::wxConsoleEventLoop()
                     &m_wakeupPipe,
                     wxFDIO_INPUT
                   );
-};
+}
 
 //-----------------------------------------------------------------------------
 // events dispatch and loop handling
@@ -187,7 +176,7 @@ void wxConsoleEventLoop::OnNextIteration()
         timeout = wxFDIODispatcher::TIMEOUT_INFINITE;
     }
 
-    m_dispatcher->RunLoop(timeout);
+    m_dispatcher->Dispatch(timeout);
 
 #if wxUSE_TIMER
     wxTimerScheduler::Get().NotifyExpired();
@@ -197,4 +186,10 @@ void wxConsoleEventLoop::OnNextIteration()
     wxTheApp->CheckSignal();
 }
 
-#endif // !wxUSE_GUI
+
+wxEventLoopBase *wxConsoleAppTraits::CreateEventLoop()
+{
+    return new wxEventLoop();
+}
+
+#endif // wxUSE_CONSOLE_EVENTLOOP