Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/lldb/source/Target/JITLoaderList.cpp
39587 views
1
//===-- JITLoaderList.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-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#include "lldb/Target/JITLoader.h"
10
#include "lldb/Target/JITLoaderList.h"
11
#include "lldb/lldb-private.h"
12
13
using namespace lldb;
14
using namespace lldb_private;
15
16
JITLoaderList::JITLoaderList() : m_jit_loaders_vec(), m_jit_loaders_mutex() {}
17
18
JITLoaderList::~JITLoaderList() = default;
19
20
void JITLoaderList::Append(const JITLoaderSP &jit_loader_sp) {
21
std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
22
m_jit_loaders_vec.push_back(jit_loader_sp);
23
}
24
25
void JITLoaderList::Remove(const JITLoaderSP &jit_loader_sp) {
26
std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
27
llvm::erase(m_jit_loaders_vec, jit_loader_sp);
28
}
29
30
size_t JITLoaderList::GetSize() const { return m_jit_loaders_vec.size(); }
31
32
JITLoaderSP JITLoaderList::GetLoaderAtIndex(size_t idx) {
33
std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
34
return m_jit_loaders_vec[idx];
35
}
36
37
void JITLoaderList::DidLaunch() {
38
std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
39
for (auto const &jit_loader : m_jit_loaders_vec)
40
jit_loader->DidLaunch();
41
}
42
43
void JITLoaderList::DidAttach() {
44
std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
45
for (auto const &jit_loader : m_jit_loaders_vec)
46
jit_loader->DidAttach();
47
}
48
49
void JITLoaderList::ModulesDidLoad(ModuleList &module_list) {
50
std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
51
for (auto const &jit_loader : m_jit_loaders_vec)
52
jit_loader->ModulesDidLoad(module_list);
53
}
54
55