forked from OSchip/llvm-project
More reverting of the EOF stuff as the API was changed which we don't want to
do. Closing on EOF is an option that can be set on the lldb_private::Communication or the lldb::SBCommunication objects after they are created. Of course the EOF support isn't hooked up, so they don't do anything at the moment, but they are left in so when the code is fixed, it will be easy to get working again. llvm-svn: 120885
This commit is contained in:
parent
f3eb96fccf
commit
d46c87a1a8
|
@ -30,7 +30,7 @@ public:
|
|||
typedef void (*ReadThreadBytesReceived) (void *baton, const void *src, size_t src_len);
|
||||
|
||||
SBCommunication ();
|
||||
SBCommunication (const char * broadcaster_name, bool close_on_eof);
|
||||
SBCommunication (const char * broadcaster_name);
|
||||
~SBCommunication ();
|
||||
|
||||
|
||||
|
@ -58,6 +58,12 @@ public:
|
|||
bool
|
||||
IsConnected () const;
|
||||
|
||||
bool
|
||||
GetCloseOnEOF ();
|
||||
|
||||
void
|
||||
SetCloseOnEOF (bool b);
|
||||
|
||||
size_t
|
||||
Read (void *dst,
|
||||
size_t dst_len,
|
||||
|
|
|
@ -109,7 +109,7 @@ public:
|
|||
/// broadcaster name can be updated after the connect function
|
||||
/// is called.
|
||||
//------------------------------------------------------------------
|
||||
Communication(const char * broadcaster_name, bool close_on_eof);
|
||||
Communication(const char * broadcaster_name);
|
||||
|
||||
//------------------------------------------------------------------
|
||||
/// Destructor.
|
||||
|
@ -334,14 +334,24 @@ public:
|
|||
static const char *
|
||||
ConnectionStatusAsCString (lldb::ConnectionStatus status);
|
||||
|
||||
bool
|
||||
GetCloseOnEOF () const
|
||||
{
|
||||
return m_close_on_eof;
|
||||
}
|
||||
|
||||
void
|
||||
SetCloseOnEOF (bool b)
|
||||
{
|
||||
m_close_on_eof = b;
|
||||
}
|
||||
|
||||
private:
|
||||
//------------------------------------------------------------------
|
||||
// For Communication only
|
||||
//------------------------------------------------------------------
|
||||
DISALLOW_COPY_AND_ASSIGN (Communication);
|
||||
|
||||
bool
|
||||
CloseOnEOF ();
|
||||
|
||||
protected:
|
||||
std::auto_ptr<Connection> m_connection_ap; ///< The connection that is current in use by this communications class.
|
||||
|
|
|
@ -24,8 +24,8 @@ SBCommunication::SBCommunication() :
|
|||
{
|
||||
}
|
||||
|
||||
SBCommunication::SBCommunication(const char * broadcaster_name, bool close_on_eof) :
|
||||
m_opaque (new Communication (broadcaster_name, close_on_eof)),
|
||||
SBCommunication::SBCommunication(const char * broadcaster_name) :
|
||||
m_opaque (new Communication (broadcaster_name)),
|
||||
m_opaque_owned (true)
|
||||
{
|
||||
LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
|
||||
|
@ -43,6 +43,21 @@ SBCommunication::~SBCommunication()
|
|||
m_opaque_owned = false;
|
||||
}
|
||||
|
||||
bool
|
||||
SBCommunication::GetCloseOnEOF ()
|
||||
{
|
||||
if (m_opaque)
|
||||
return m_opaque->GetCloseOnEOF ();
|
||||
return false;
|
||||
}
|
||||
|
||||
void
|
||||
SBCommunication::SetCloseOnEOF (bool b)
|
||||
{
|
||||
if (m_opaque)
|
||||
m_opaque->SetCloseOnEOF (b);
|
||||
}
|
||||
|
||||
ConnectionStatus
|
||||
SBCommunication::CheckIfBytesAvailable ()
|
||||
{
|
||||
|
|
|
@ -25,7 +25,7 @@ using namespace lldb_private;
|
|||
//----------------------------------------------------------------------
|
||||
// Constructor
|
||||
//----------------------------------------------------------------------
|
||||
Communication::Communication(const char *name, bool close_on_eof) :
|
||||
Communication::Communication(const char *name) :
|
||||
Broadcaster (name),
|
||||
m_connection_ap (),
|
||||
m_read_thread (LLDB_INVALID_HOST_THREAD),
|
||||
|
@ -34,7 +34,7 @@ Communication::Communication(const char *name, bool close_on_eof) :
|
|||
m_bytes_mutex (Mutex::eMutexTypeRecursive),
|
||||
m_callback (NULL),
|
||||
m_callback_baton (NULL),
|
||||
m_close_on_eof (close_on_eof)
|
||||
m_close_on_eof (true)
|
||||
|
||||
{
|
||||
lldb_private::LogIfAnyCategoriesSet (LIBLLDB_LOG_OBJECT | LIBLLDB_LOG_COMMUNICATION,
|
||||
|
@ -290,12 +290,6 @@ Communication::ReadFromConnection (void *dst, size_t dst_len, ConnectionStatus &
|
|||
return 0;
|
||||
}
|
||||
|
||||
bool
|
||||
Communication::CloseOnEOF ()
|
||||
{
|
||||
return m_close_on_eof;
|
||||
}
|
||||
|
||||
bool
|
||||
Communication::ReadThreadIsRunning ()
|
||||
{
|
||||
|
|
|
@ -166,7 +166,7 @@ Debugger::FindTargetWithProcessID (lldb::pid_t pid)
|
|||
Debugger::Debugger () :
|
||||
UserID (g_unique_id++),
|
||||
DebuggerInstanceSettings (*GetSettingsController()),
|
||||
m_input_comm("debugger.input", false),
|
||||
m_input_comm("debugger.input"),
|
||||
m_input_file (),
|
||||
m_output_file (),
|
||||
m_error_file (),
|
||||
|
@ -178,6 +178,7 @@ Debugger::Debugger () :
|
|||
m_input_readers (),
|
||||
m_input_reader_data ()
|
||||
{
|
||||
m_input_comm.SetCloseOnEOF(false);
|
||||
m_command_interpreter_ap->Initialize ();
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ using namespace lldb_private;
|
|||
// GDBRemoteCommunication constructor
|
||||
//----------------------------------------------------------------------
|
||||
GDBRemoteCommunication::GDBRemoteCommunication() :
|
||||
Communication("gdb-remote.packets", true),
|
||||
Communication("gdb-remote.packets"),
|
||||
m_send_acks (true),
|
||||
m_rx_packet_listener ("gdbremote.rx_packet"),
|
||||
m_sequence_mutex (Mutex::eMutexTypeRecursive),
|
||||
|
|
|
@ -96,7 +96,7 @@ Process::Process(Target &target, Listener &listener) :
|
|||
m_addr_byte_size (0),
|
||||
m_abi_sp (),
|
||||
m_process_input_reader (),
|
||||
m_stdio_communication ("lldb.process.stdio", true),
|
||||
m_stdio_communication ("lldb.process.stdio"),
|
||||
m_stdio_communication_mutex (Mutex::eMutexTypeRecursive),
|
||||
m_stdout_data ()
|
||||
{
|
||||
|
|
|
@ -1178,7 +1178,8 @@ Driver::MainLoop ()
|
|||
// However, you don't need to do anything with the characters, since editline will dump these
|
||||
// unconsumed characters after printing the prompt again in el_gets.
|
||||
|
||||
SBCommunication master_out_comm("driver.editline", false);
|
||||
SBCommunication master_out_comm("driver.editline");
|
||||
master_out_comm.SetCloseOnEOF (false);
|
||||
master_out_comm.AdoptFileDesriptor(m_editline_pty.GetMasterFileDescriptor(), false);
|
||||
master_out_comm.SetReadThreadBytesReceivedCallback(Driver::MasterThreadBytesReceived, this);
|
||||
|
||||
|
|
Loading…
Reference in New Issue