X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/796e54ef37c2ecad97841d467702ba549ff8cc49..08670ea85abf4b4946a9ce64971b591d7b1ee30b:/src/common/stopwatch.cpp diff --git a/src/common/stopwatch.cpp b/src/common/stopwatch.cpp index f077378b3a..f36696dff0 100644 --- a/src/common/stopwatch.cpp +++ b/src/common/stopwatch.cpp @@ -37,6 +37,7 @@ #include "wx/msw/wrapwin.h" #endif #include "wx/log.h" + #include "wx/thread.h" #endif //WX_PRECOMP // ============================================================================ @@ -64,7 +65,7 @@ struct PerfCounter return freq.QuadPart != 0; } - wxCriticalSection cs; + wxCRIT_SECT_DECLARE_MEMBER(cs); LARGE_INTEGER freq; bool init; } gs_perfCounter; @@ -82,7 +83,7 @@ void wxStopWatch::DoStart() #ifdef __WXMSW__ if ( !gs_perfCounter.init ) { - wxCriticalSectionLocker lock(gs_perfCounter.cs); + wxCRIT_SECT_LOCKER(lock, gs_perfCounter.cs); ::QueryPerformanceFrequency(&gs_perfCounter.freq); // Just a sanity check: it's not supposed to happen but verify that @@ -125,6 +126,10 @@ wxLongLong wxStopWatch::GetClockFreq() const void wxStopWatch::Start(long t0) { + // Calling Start() makes the stop watch run however many times it was + // paused before. + m_pauseCount = 0; + DoStart(); m_t0 -= (wxLongLong(t0)*GetClockFreq())/MILLISECONDS_PER_SECOND;