brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 55d48ae Raw
33 lines · cpp
1//===-- TaskTimer.cpp -----------------------------------------------------===//2//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-exception6//7//===----------------------------------------------------------------------===//8 9#include "TaskTimer.h"10 11using namespace lldb;12using namespace lldb_private;13using namespace lldb_private::trace_intel_pt;14using namespace llvm;15 16void ScopedTaskTimer::ForEachTimedTask(17    std::function<void(const std::string &event,18                       std::chrono::milliseconds duration)>19        callback) {20  for (const auto &kv : m_timed_tasks) {21    callback(kv.first, kv.second);22  }23}24 25ScopedTaskTimer &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;29  return it->second;30}31 32ScopedTaskTimer &TaskTimer::ForGlobal() { return m_global_timer; }33