1 //===-- JITLoader.cpp -------------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #include "lldb/lldb-private.h"
11 #include "lldb/Target/JITLoader.h"
12 #include "lldb/Target/JITLoaderList.h"
15 using namespace lldb_private;
17 JITLoaderList::JITLoaderList() : m_jit_loaders_vec(), m_jit_loaders_mutex()
21 JITLoaderList::~JITLoaderList()
26 JITLoaderList::Append (const JITLoaderSP &jit_loader_sp)
28 std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
29 m_jit_loaders_vec.push_back(jit_loader_sp);
33 JITLoaderList::Remove (const JITLoaderSP &jit_loader_sp)
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());
42 JITLoaderList::GetSize() const
44 return m_jit_loaders_vec.size();
48 JITLoaderList::GetLoaderAtIndex (size_t idx)
50 std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
51 return m_jit_loaders_vec[idx];
55 JITLoaderList::DidLaunch()
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();
63 JITLoaderList::DidAttach()
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();
71 JITLoaderList::ModulesDidLoad(ModuleList &module_list)
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);