blob: 24a73b7fd51686d9abb6c83c3f5b12718bdf79c9 [file] [log] [blame]
Andrew MacPherson17220c12014-03-05 10:12:43 +00001//===-- 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
14using namespace lldb;
15using namespace lldb_private;
16
17JITLoaderList::JITLoaderList()
18 : m_jit_loaders_vec(), m_jit_loaders_mutex(Mutex::eMutexTypeRecursive)
19{
20}
21
22JITLoaderList::~JITLoaderList()
23{
24}
25
26void
27JITLoaderList::Append (const JITLoaderSP &jit_loader_sp)
28{
29 Mutex::Locker locker(m_jit_loaders_mutex);
30 m_jit_loaders_vec.push_back(jit_loader_sp);
31}
32
33void
34JITLoaderList::Remove (const JITLoaderSP &jit_loader_sp)
35{
36 Mutex::Locker locker(m_jit_loaders_mutex);
37 m_jit_loaders_vec.erase(std::remove(m_jit_loaders_vec.begin(),
38 m_jit_loaders_vec.end(), jit_loader_sp),
39 m_jit_loaders_vec.end());
40}
41
42size_t
43JITLoaderList::GetSize() const
44{
45 return m_jit_loaders_vec.size();
46}
47
48JITLoaderSP
49JITLoaderList::GetLoaderAtIndex (size_t idx)
50{
51 Mutex::Locker locker(m_jit_loaders_mutex);
52 return m_jit_loaders_vec[idx];
53}
54
55void
56JITLoaderList::DidLaunch()
57{
58 Mutex::Locker locker(m_jit_loaders_mutex);
59 for (auto const &jit_loader : m_jit_loaders_vec)
60 jit_loader->DidLaunch();
61}
62
63void
64JITLoaderList::DidAttach()
65{
66 Mutex::Locker locker(m_jit_loaders_mutex);
67 for (auto const &jit_loader : m_jit_loaders_vec)
68 jit_loader->DidAttach();
69}
Andrew MacPhersoneb4d0602014-03-13 09:37:02 +000070
71void
72JITLoaderList::ModulesDidLoad(ModuleList &module_list)
73{
74 Mutex::Locker locker(m_jit_loaders_mutex);
75 for (auto const &jit_loader : m_jit_loaders_vec)
76 jit_loader->ModulesDidLoad(module_list);
77}