summaryrefslogtreecommitdiffstats
path: root/source/Core/InputReaderStack.cpp
diff options
context:
space:
mode:
authoremaste <emaste@FreeBSD.org>2013-08-23 17:46:38 +0000
committeremaste <emaste@FreeBSD.org>2013-08-23 17:46:38 +0000
commitdcd15f81789e389c1cb27d264fcdddfd0a6002bd (patch)
treef561dabc721ad515599172c16da3a4400b7f4aec /source/Core/InputReaderStack.cpp
downloadFreeBSD-src-dcd15f81789e389c1cb27d264fcdddfd0a6002bd.zip
FreeBSD-src-dcd15f81789e389c1cb27d264fcdddfd0a6002bd.tar.gz
Import lldb as of SVN r188801
(A number of files not required for the FreeBSD build have been removed.) Sponsored by: DARPA, AFRL
Diffstat (limited to 'source/Core/InputReaderStack.cpp')
-rw-r--r--source/Core/InputReaderStack.cpp80
1 files changed, 80 insertions, 0 deletions
diff --git a/source/Core/InputReaderStack.cpp b/source/Core/InputReaderStack.cpp
new file mode 100644
index 0000000..764ea26
--- /dev/null
+++ b/source/Core/InputReaderStack.cpp
@@ -0,0 +1,80 @@
+//===-- InputReaderStack.cpp ------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "lldb/Core/InputReaderStack.h"
+
+// C Includes
+// C++ Includes
+// Other libraries and framework includes
+// Project includes
+
+
+using namespace lldb;
+using namespace lldb_private;
+
+InputReaderStack::InputReaderStack () :
+ m_input_readers (),
+ m_input_readers_mutex (Mutex::eMutexTypeRecursive)
+{
+}
+
+InputReaderStack::~InputReaderStack ()
+{
+}
+
+size_t
+InputReaderStack::GetSize () const
+{
+ Mutex::Locker locker (m_input_readers_mutex);
+ return m_input_readers.size();
+}
+
+void
+InputReaderStack::Push (const lldb::InputReaderSP& reader_sp)
+{
+ if (reader_sp)
+ {
+ Mutex::Locker locker (m_input_readers_mutex);
+ m_input_readers.push (reader_sp);
+ }
+}
+
+bool
+InputReaderStack::IsEmpty () const
+{
+ Mutex::Locker locker (m_input_readers_mutex);
+ return m_input_readers.empty();
+}
+
+InputReaderSP
+InputReaderStack::Top ()
+{
+ InputReaderSP input_reader_sp;
+ {
+ Mutex::Locker locker (m_input_readers_mutex);
+ if (!m_input_readers.empty())
+ input_reader_sp = m_input_readers.top();
+ }
+
+ return input_reader_sp;
+}
+
+void
+InputReaderStack::Pop ()
+{
+ Mutex::Locker locker (m_input_readers_mutex);
+ if (!m_input_readers.empty())
+ m_input_readers.pop();
+}
+
+Mutex &
+InputReaderStack::GetStackMutex ()
+{
+ return m_input_readers_mutex;
+}
OpenPOWER on IntegriCloud