summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/xray/xray_buffer_queue.cc
diff options
context:
space:
mode:
Diffstat (limited to 'compiler-rt/lib/xray/xray_buffer_queue.cc')
-rw-r--r--compiler-rt/lib/xray/xray_buffer_queue.cc65
1 files changed, 0 insertions, 65 deletions
diff --git a/compiler-rt/lib/xray/xray_buffer_queue.cc b/compiler-rt/lib/xray/xray_buffer_queue.cc
deleted file mode 100644
index 17878eb85de..00000000000
--- a/compiler-rt/lib/xray/xray_buffer_queue.cc
+++ /dev/null
@@ -1,65 +0,0 @@
-//===-- xray_buffer_queue.cc -----------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file is a part of XRay, a dynamic runtime instruementation system.
-//
-// Defines the interface for a buffer queue implementation.
-//
-//===----------------------------------------------------------------------===//
-#include "xray_buffer_queue.h"
-#include <cassert>
-#include <cstdlib>
-
-using namespace __xray;
-
-BufferQueue::BufferQueue(std::size_t B, std::size_t N)
- : BufferSize(B), Buffers(N) {
- for (auto &Buf : Buffers) {
- void *Tmp = malloc(BufferSize);
- Buf.Buffer = Tmp;
- Buf.Size = B;
- if (Tmp != 0)
- OwnedBuffers.insert(Tmp);
- }
-}
-
-std::error_code BufferQueue::getBuffer(Buffer &Buf) {
- if (Finalizing.load(std::memory_order_acquire))
- return std::make_error_code(std::errc::state_not_recoverable);
- std::lock_guard<std::mutex> Guard(Mutex);
- if (Buffers.empty())
- return std::make_error_code(std::errc::not_enough_memory);
- Buf = Buffers.front();
- Buffers.pop_front();
- return {};
-}
-
-std::error_code BufferQueue::releaseBuffer(Buffer &Buf) {
- if (OwnedBuffers.count(Buf.Buffer) == 0)
- return std::make_error_code(std::errc::argument_out_of_domain);
- std::lock_guard<std::mutex> Guard(Mutex);
- Buffers.push_back(Buf);
- Buf.Buffer = nullptr;
- Buf.Size = BufferSize;
- return {};
-}
-
-std::error_code BufferQueue::finalize() {
- if (Finalizing.exchange(true, std::memory_order_acq_rel))
- return std::make_error_code(std::errc::state_not_recoverable);
- return {};
-}
-
-BufferQueue::~BufferQueue() {
- for (auto &Buf : Buffers) {
- free(Buf.Buffer);
- Buf.Buffer = nullptr;
- Buf.Size = 0;
- }
-}
OpenPOWER on IntegriCloud