summaryrefslogtreecommitdiff
path: root/Libraries/LibCore/CElapsedTimer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Libraries/LibCore/CElapsedTimer.cpp')
-rw-r--r--Libraries/LibCore/CElapsedTimer.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/Libraries/LibCore/CElapsedTimer.cpp b/Libraries/LibCore/CElapsedTimer.cpp
new file mode 100644
index 0000000000..4e8902d348
--- /dev/null
+++ b/Libraries/LibCore/CElapsedTimer.cpp
@@ -0,0 +1,20 @@
+#include <AK/Assertions.h>
+#include <AK/Time.h>
+#include <LibCore/CElapsedTimer.h>
+#include <sys/time.h>
+
+void CElapsedTimer::start()
+{
+ m_valid = true;
+ gettimeofday(&m_start_time, nullptr);
+}
+
+int CElapsedTimer::elapsed() const
+{
+ ASSERT(is_valid());
+ struct timeval now;
+ gettimeofday(&now, nullptr);
+ struct timeval diff;
+ timeval_sub(now, m_start_time, diff);
+ return diff.tv_sec * 1000 + diff.tv_usec / 1000;
+}