]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/source/Target/JITLoaderList.cpp
MFV r323678: file 5.32
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / source / Target / JITLoaderList.cpp
1 //===-- JITLoaderList.cpp ---------------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #include "lldb/Target/JITLoader.h"
11 #include "lldb/Target/JITLoaderList.h"
12 #include "lldb/lldb-private.h"
13
14 using namespace lldb;
15 using namespace lldb_private;
16
17 JITLoaderList::JITLoaderList() : m_jit_loaders_vec(), m_jit_loaders_mutex() {}
18
19 JITLoaderList::~JITLoaderList() {}
20
21 void JITLoaderList::Append(const JITLoaderSP &jit_loader_sp) {
22   std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
23   m_jit_loaders_vec.push_back(jit_loader_sp);
24 }
25
26 void JITLoaderList::Remove(const JITLoaderSP &jit_loader_sp) {
27   std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
28   m_jit_loaders_vec.erase(std::remove(m_jit_loaders_vec.begin(),
29                                       m_jit_loaders_vec.end(), jit_loader_sp),
30                           m_jit_loaders_vec.end());
31 }
32
33 size_t JITLoaderList::GetSize() const { return m_jit_loaders_vec.size(); }
34
35 JITLoaderSP JITLoaderList::GetLoaderAtIndex(size_t idx) {
36   std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
37   return m_jit_loaders_vec[idx];
38 }
39
40 void JITLoaderList::DidLaunch() {
41   std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
42   for (auto const &jit_loader : m_jit_loaders_vec)
43     jit_loader->DidLaunch();
44 }
45
46 void JITLoaderList::DidAttach() {
47   std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
48   for (auto const &jit_loader : m_jit_loaders_vec)
49     jit_loader->DidAttach();
50 }
51
52 void JITLoaderList::ModulesDidLoad(ModuleList &module_list) {
53   std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
54   for (auto const &jit_loader : m_jit_loaders_vec)
55     jit_loader->ModulesDidLoad(module_list);
56 }