1 //===-- TaskTimer.cpp -----------------------------------------------------===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
12 using namespace lldb_private
;
13 using namespace lldb_private::trace_intel_pt
;
16 void ScopedTaskTimer::ForEachTimedTask(
17 std::function
<void(const std::string
&event
,
18 std::chrono::milliseconds duration
)>
20 for (const auto &kv
: m_timed_tasks
) {
21 callback(kv
.first
, kv
.second
);
25 ScopedTaskTimer
&TaskTimer::ForThread(lldb::tid_t tid
) {
26 auto it
= m_thread_timers
.find(tid
);
27 if (it
== m_thread_timers
.end())
28 it
= m_thread_timers
.try_emplace(tid
, ScopedTaskTimer
{}).first
;
32 ScopedTaskTimer
&TaskTimer::ForGlobal() { return m_global_timer
; }