#include "wx/event.h"
#endif
+#include "wx/apptrait.h"
#include "wx/longlong.h"
#include <sys/time.h>
#include "wx/unix/private/timer.h"
#include "wx/listimpl.cpp"
-WX_DEFINE_LIST(wxTimerList);
+WX_DEFINE_LIST(wxTimerList)
// trace mask for the debugging messages used here
#define wxTrace_Timer wxT("timer")
}
else // reschedule the next timer expiration
{
- s->m_expiration += timer->GetInterval()*1000;
+ // always keep the expiration time in the future, i.e. base it on
+ // the current time instead of just offsetting it from the current
+ // expiration time because it could happen that we're late and the
+ // current expiration time is (far) in the past
+ s->m_expiration = now + timer->GetInterval()*1000;
DoAddTimer(s);
}
return wxGetLocalTimeMillis() * 1000L;
}
+wxTimerImpl *wxConsoleAppTraits::CreateTimerImpl(wxTimer *timer)
+{
+ return new wxUnixTimerImpl(timer);
+}
+
#endif // wxUSE_TIMER