1 //===-- InputReaderStack.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/Core/InputReaderStack.h"
14 // Other libraries and framework includes
19 using namespace lldb_private;
21 InputReaderStack::InputReaderStack () :
23 m_input_readers_mutex (Mutex::eMutexTypeRecursive)
27 InputReaderStack::~InputReaderStack ()
32 InputReaderStack::GetSize () const
34 Mutex::Locker locker (m_input_readers_mutex);
35 return m_input_readers.size();
39 InputReaderStack::Push (const lldb::InputReaderSP& reader_sp)
43 Mutex::Locker locker (m_input_readers_mutex);
44 m_input_readers.push (reader_sp);
49 InputReaderStack::IsEmpty () const
51 Mutex::Locker locker (m_input_readers_mutex);
52 return m_input_readers.empty();
56 InputReaderStack::Top ()
58 InputReaderSP input_reader_sp;
60 Mutex::Locker locker (m_input_readers_mutex);
61 if (!m_input_readers.empty())
62 input_reader_sp = m_input_readers.top();
65 return input_reader_sp;
69 InputReaderStack::Pop ()
71 Mutex::Locker locker (m_input_readers_mutex);
72 if (!m_input_readers.empty())
73 m_input_readers.pop();
77 InputReaderStack::GetStackMutex ()
79 return m_input_readers_mutex;