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