1 #include "TaskTimer.h"
2 
3 using namespace lldb;
4 using namespace lldb_private;
5 using namespace lldb_private::trace_intel_pt;
6 using namespace llvm;
7 
8 void ScopedTaskTimer::ForEachTimedTask(
9     std::function<void(const std::string &event,
10                        std::chrono::milliseconds duration)>
11         callback) {
12   for (const auto &kv : m_timed_tasks) {
13     callback(kv.first, kv.second);
14   }
15 }
16 
17 ScopedTaskTimer &TaskTimer::ForThread(lldb::tid_t tid) {
18   auto it = m_thread_timers.find(tid);
19   if (it == m_thread_timers.end())
20     it = m_thread_timers.try_emplace(tid, ScopedTaskTimer{}).first;
21   return it->second;
22 }
23 
24 ScopedTaskTimer &TaskTimer::ForGlobal() { return m_global_timer; }
25