Remove checks for QueryPerformanceCounter() success.
According to http://msdn.microsoft.com/en-us/library/windows/desktop/dn553408.aspx this function will never fail under Windows XP or later, so simplify code by not checking whether it did. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77472 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -59,11 +59,6 @@ struct PerfCounter
|
|||||||
init = false;
|
init = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CanBeUsed() const
|
|
||||||
{
|
|
||||||
return freq.QuadPart != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxCRIT_SECT_DECLARE_MEMBER(cs);
|
wxCRIT_SECT_DECLARE_MEMBER(cs);
|
||||||
LARGE_INTEGER freq;
|
LARGE_INTEGER freq;
|
||||||
bool init;
|
bool init;
|
||||||
@@ -97,17 +92,6 @@ void wxStopWatch::DoStart()
|
|||||||
wxCRIT_SECT_LOCKER(lock, perfCounter.cs);
|
wxCRIT_SECT_LOCKER(lock, perfCounter.cs);
|
||||||
::QueryPerformanceFrequency(&perfCounter.freq);
|
::QueryPerformanceFrequency(&perfCounter.freq);
|
||||||
|
|
||||||
// Just a sanity check: it's not supposed to happen but verify that
|
|
||||||
// ::QueryPerformanceCounter() succeeds so that we can really use it.
|
|
||||||
LARGE_INTEGER counter;
|
|
||||||
if ( !::QueryPerformanceCounter(&counter) )
|
|
||||||
{
|
|
||||||
wxLogDebug("QueryPerformanceCounter() unexpected failed (%s), "
|
|
||||||
"will not use it.", wxSysErrorMsg());
|
|
||||||
|
|
||||||
perfCounter.freq.QuadPart = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
perfCounter.init = true;
|
perfCounter.init = true;
|
||||||
}
|
}
|
||||||
#endif // __WINDOWS__
|
#endif // __WINDOWS__
|
||||||
@@ -120,11 +104,8 @@ wxLongLong wxStopWatch::GetClockFreq() const
|
|||||||
#ifdef __WINDOWS__
|
#ifdef __WINDOWS__
|
||||||
// Under MSW we use the high resolution performance counter timer which has
|
// Under MSW we use the high resolution performance counter timer which has
|
||||||
// its own frequency (usually related to the CPU clock speed).
|
// its own frequency (usually related to the CPU clock speed).
|
||||||
if ( GetPerfCounterState().CanBeUsed() )
|
return GetPerfCounterState().freq.QuadPart;
|
||||||
return GetPerfCounterState().freq.QuadPart;
|
#elif defined(HAVE_GETTIMEOFDAY)
|
||||||
#endif // __WINDOWS__
|
|
||||||
|
|
||||||
#ifdef HAVE_GETTIMEOFDAY
|
|
||||||
// With gettimeofday() we can have nominally microsecond precision and
|
// With gettimeofday() we can have nominally microsecond precision and
|
||||||
// while this is not the case in practice, it's still better than
|
// while this is not the case in practice, it's still better than
|
||||||
// millisecond.
|
// millisecond.
|
||||||
@@ -132,7 +113,7 @@ wxLongLong wxStopWatch::GetClockFreq() const
|
|||||||
#else // !HAVE_GETTIMEOFDAY
|
#else // !HAVE_GETTIMEOFDAY
|
||||||
// Currently milliseconds are used everywhere else.
|
// Currently milliseconds are used everywhere else.
|
||||||
return MILLISECONDS_PER_SECOND;
|
return MILLISECONDS_PER_SECOND;
|
||||||
#endif // HAVE_GETTIMEOFDAY/!HAVE_GETTIMEOFDAY
|
#endif // __WINDOWS__/HAVE_GETTIMEOFDAY/else
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxStopWatch::Start(long t0)
|
void wxStopWatch::Start(long t0)
|
||||||
@@ -149,19 +130,14 @@ void wxStopWatch::Start(long t0)
|
|||||||
wxLongLong wxStopWatch::GetCurrentClockValue() const
|
wxLongLong wxStopWatch::GetCurrentClockValue() const
|
||||||
{
|
{
|
||||||
#ifdef __WINDOWS__
|
#ifdef __WINDOWS__
|
||||||
if ( GetPerfCounterState().CanBeUsed() )
|
LARGE_INTEGER counter;
|
||||||
{
|
::QueryPerformanceCounter(&counter);
|
||||||
LARGE_INTEGER counter;
|
return counter.QuadPart;
|
||||||
::QueryPerformanceCounter(&counter);
|
#elif defined(HAVE_GETTIMEOFDAY)
|
||||||
return counter.QuadPart;
|
|
||||||
}
|
|
||||||
#endif // __WINDOWS__
|
|
||||||
|
|
||||||
#ifdef HAVE_GETTIMEOFDAY
|
|
||||||
return wxGetUTCTimeUSec();
|
return wxGetUTCTimeUSec();
|
||||||
#else // !HAVE_GETTIMEOFDAY
|
#else // !HAVE_GETTIMEOFDAY
|
||||||
return wxGetUTCTimeMillis();
|
return wxGetUTCTimeMillis();
|
||||||
#endif // HAVE_GETTIMEOFDAY/!HAVE_GETTIMEOFDAY
|
#endif // __WINDOWS__/HAVE_GETTIMEOFDAY/else
|
||||||
}
|
}
|
||||||
|
|
||||||
wxLongLong wxStopWatch::TimeInMicro() const
|
wxLongLong wxStopWatch::TimeInMicro() const
|
||||||
|
Reference in New Issue
Block a user