]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - source/Target/JITLoaderList.cpp
Vendor import of lldb release_39 branch r276489:
[FreeBSD/FreeBSD.git] / source / Target / JITLoaderList.cpp
1 //===-- JITLoader.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/lldb-private.h"
11 #include "lldb/Target/JITLoader.h"
12 #include "lldb/Target/JITLoaderList.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 }
20
21 JITLoaderList::~JITLoaderList()
22 {
23 }
24
25 void
26 JITLoaderList::Append (const JITLoaderSP &jit_loader_sp)
27 {
28     std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
29     m_jit_loaders_vec.push_back(jit_loader_sp);
30 }
31
32 void
33 JITLoaderList::Remove (const JITLoaderSP &jit_loader_sp)
34 {
35     std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
36     m_jit_loaders_vec.erase(std::remove(m_jit_loaders_vec.begin(),
37                                         m_jit_loaders_vec.end(), jit_loader_sp),
38                             m_jit_loaders_vec.end());
39 }
40
41 size_t
42 JITLoaderList::GetSize() const
43 {
44     return m_jit_loaders_vec.size();
45 }
46
47 JITLoaderSP
48 JITLoaderList::GetLoaderAtIndex (size_t idx)
49 {
50     std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
51     return m_jit_loaders_vec[idx];
52 }
53
54 void
55 JITLoaderList::DidLaunch()
56 {
57     std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
58     for (auto const &jit_loader : m_jit_loaders_vec)
59         jit_loader->DidLaunch();
60 }
61
62 void
63 JITLoaderList::DidAttach()
64 {
65     std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
66     for (auto const &jit_loader : m_jit_loaders_vec)
67         jit_loader->DidAttach();
68 }
69
70 void
71 JITLoaderList::ModulesDidLoad(ModuleList &module_list)
72 {
73     std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
74     for (auto const &jit_loader : m_jit_loaders_vec)
75         jit_loader->ModulesDidLoad(module_list);
76 }