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