X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a4c4cf1028b83c0bfb84bda64b7003fba7da517c..4c49b5d83e41323f939d2a559f7c8642692221ce:/src/common/timercmn.cpp diff --git a/src/common/timercmn.cpp b/src/common/timercmn.cpp index 93b58499e5..5f08b29800 100644 --- a/src/common/timercmn.cpp +++ b/src/common/timercmn.cpp @@ -9,9 +9,9 @@ // Modified by: // Created: 04/01/98 // RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem +// Copyright: (c) Julian Smart // (c) 1999 Guillermo Rodriguez -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -36,6 +36,7 @@ #ifndef WX_PRECOMP #include "wx/intl.h" #include "wx/log.h" + #include "wx/thread.h" #endif #include "wx/timer.h" @@ -131,6 +132,13 @@ void wxTimerBase::Notify() bool wxTimerBase::Start(int milliseconds, bool oneShot) { + // under MSW timers only work when they're started from the main thread so + // let the caller know about it +#if wxUSE_THREADS + wxASSERT_MSG( wxThread::IsMain(), + _T("timer can only be started from the main thread") ); +#endif // wxUSE_THREADS + if ( IsRunning() ) { // not stopping the already running timer might work for some @@ -161,6 +169,7 @@ void wxStopWatch::Start(long t) { m_t0 = wxGetLocalTimeMillis() - t; m_pause = 0; + m_pauseCount = 0; } long wxStopWatch::GetElapsedTime() const @@ -337,7 +346,6 @@ wxLongLong wxGetLocalTimeMillis() return (val + tp.millitm); #elif defined(__WXMAC__) - unsigned long secs ; UInt64 gMilliAtStart = 0 ; Nanoseconds upTime = AbsoluteToNanoseconds( UpTime() ) ; if ( gMilliAtStart == 0 ) @@ -350,7 +358,8 @@ wxLongLong wxGetLocalTimeMillis() UInt64 millival = gMilliAtStart ; millival += upTime.lo / 1000 ; millival += ( ( (UInt64) upTime.hi ) << 32 ) / 1000 ; - return millival ; + val = millival ; + return val ; #else // no gettimeofday() nor ftime() // We use wxGetLocalTime() to get the seconds since // 00:00:00 Jan 1st 1970 and then whatever is available