diff options
Diffstat (limited to 'Userland')
-rw-r--r-- | Userland/Libraries/LibCore/ElapsedTimer.cpp | 25 | ||||
-rw-r--r-- | Userland/Libraries/LibCore/ElapsedTimer.h | 10 | ||||
-rw-r--r-- | Userland/Libraries/LibWeb/HighResolutionTime/Performance.cpp | 3 |
3 files changed, 12 insertions, 26 deletions
diff --git a/Userland/Libraries/LibCore/ElapsedTimer.cpp b/Userland/Libraries/LibCore/ElapsedTimer.cpp index d37398fee5..02f1802622 100644 --- a/Userland/Libraries/LibCore/ElapsedTimer.cpp +++ b/Userland/Libraries/LibCore/ElapsedTimer.cpp @@ -7,8 +7,6 @@ #include <AK/Assertions.h> #include <AK/Time.h> #include <LibCore/ElapsedTimer.h> -#include <sys/time.h> -#include <time.h> namespace Core { @@ -22,34 +20,25 @@ ElapsedTimer ElapsedTimer::start_new() void ElapsedTimer::start() { m_valid = true; - timespec now_spec; - clock_gettime(m_precise ? CLOCK_MONOTONIC : CLOCK_MONOTONIC_COARSE, &now_spec); - m_origin_time.tv_sec = now_spec.tv_sec; - m_origin_time.tv_usec = now_spec.tv_nsec / 1000; + m_origin_time = m_precise ? Time::now_monotonic() : Time::now_monotonic_coarse(); } void ElapsedTimer::reset() { m_valid = false; - m_origin_time = { 0, 0 }; + m_origin_time = {}; } -int ElapsedTimer::elapsed() const +i64 ElapsedTimer::elapsed() const { - VERIFY(is_valid()); - struct timeval now; - timespec now_spec; - clock_gettime(m_precise ? CLOCK_MONOTONIC : CLOCK_MONOTONIC_COARSE, &now_spec); - now.tv_sec = now_spec.tv_sec; - now.tv_usec = now_spec.tv_nsec / 1000; - struct timeval diff; - timeval_sub(now, m_origin_time, diff); - return diff.tv_sec * 1000 + diff.tv_usec / 1000; + return elapsed_time().to_milliseconds(); } Time ElapsedTimer::elapsed_time() const { - return Time::from_milliseconds(elapsed()); + VERIFY(is_valid()); + auto now = m_precise ? Time::now_monotonic() : Time::now_monotonic_coarse(); + return now - m_origin_time; } } diff --git a/Userland/Libraries/LibCore/ElapsedTimer.h b/Userland/Libraries/LibCore/ElapsedTimer.h index 1e62087dc1..16cb2a32fb 100644 --- a/Userland/Libraries/LibCore/ElapsedTimer.h +++ b/Userland/Libraries/LibCore/ElapsedTimer.h @@ -7,7 +7,6 @@ #pragma once #include <AK/Time.h> -#include <sys/time.h> namespace Core { @@ -23,17 +22,16 @@ public: bool is_valid() const { return m_valid; } void start(); void reset(); - int elapsed() const; + + i64 elapsed() const; // milliseconds Time elapsed_time() const; - const struct timeval& origin_time() const { return m_origin_time; } + Time const& origin_time() const { return m_origin_time; } private: + Time m_origin_time {}; bool m_precise { false }; bool m_valid { false }; - struct timeval m_origin_time { - 0, 0 - }; }; } diff --git a/Userland/Libraries/LibWeb/HighResolutionTime/Performance.cpp b/Userland/Libraries/LibWeb/HighResolutionTime/Performance.cpp index d73c1321e2..67ec50f83d 100644 --- a/Userland/Libraries/LibWeb/HighResolutionTime/Performance.cpp +++ b/Userland/Libraries/LibWeb/HighResolutionTime/Performance.cpp @@ -39,8 +39,7 @@ JS::GCPtr<NavigationTiming::PerformanceTiming> Performance::timing() double Performance::time_origin() const { - auto origin = m_timer.origin_time(); - return (origin.tv_sec * 1000.0) + (origin.tv_usec / 1000.0); + return static_cast<double>(m_timer.origin_time().to_milliseconds()); } } |