blob: 1e908bd543afb2baf3d4bed7fb2167e37d96b5ba [file] [log] [blame]
Alexander Shaposhnikov696bd632016-11-26 05:23:44 +00001//===-- JITLoaderList.cpp ---------------------------------------*- C++ -*-===//
Andrew MacPherson17220c12014-03-05 10:12:43 +00002//
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
Andrew MacPherson17220c12014-03-05 10:12:43 +000010#include "lldb/Target/JITLoader.h"
11#include "lldb/Target/JITLoaderList.h"
Kate Stoneb9c1b512016-09-06 20:57:50 +000012#include "lldb/lldb-private.h"
Andrew MacPherson17220c12014-03-05 10:12:43 +000013
14using namespace lldb;
15using namespace lldb_private;
16
Kate Stoneb9c1b512016-09-06 20:57:50 +000017JITLoaderList::JITLoaderList() : m_jit_loaders_vec(), m_jit_loaders_mutex() {}
18
19JITLoaderList::~JITLoaderList() {}
20
21void 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);
Andrew MacPherson17220c12014-03-05 10:12:43 +000024}
25
Kate Stoneb9c1b512016-09-06 20:57:50 +000026void 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());
Andrew MacPherson17220c12014-03-05 10:12:43 +000031}
32
Kate Stoneb9c1b512016-09-06 20:57:50 +000033size_t JITLoaderList::GetSize() const { return m_jit_loaders_vec.size(); }
34
35JITLoaderSP JITLoaderList::GetLoaderAtIndex(size_t idx) {
36 std::lock_guard<std::recursive_mutex> guard(m_jit_loaders_mutex);
37 return m_jit_loaders_vec[idx];
Andrew MacPherson17220c12014-03-05 10:12:43 +000038}
39
Kate Stoneb9c1b512016-09-06 20:57:50 +000040void 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();
Andrew MacPherson17220c12014-03-05 10:12:43 +000044}
45
Kate Stoneb9c1b512016-09-06 20:57:50 +000046void 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();
Andrew MacPherson17220c12014-03-05 10:12:43 +000050}
51
Kate Stoneb9c1b512016-09-06 20:57:50 +000052void 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);
Andrew MacPhersoneb4d0602014-03-13 09:37:02 +000056}