"script help (lldb.SBThread)" output stops before all output is displayed. Fixed now.

<rdar://problem/15942977>

llvm-svn: 200476
This commit is contained in:
Greg Clayton 2014-01-30 18:17:31 +00:00
parent 5944ecd64c
commit 31480e64ee
1 changed files with 9 additions and 7 deletions

View File

@ -571,7 +571,7 @@ ScriptInterpreterPython::ExecuteOneLine (const char *command, CommandReturnObjec
int err = pipe(pipe_fds);
if (err == 0)
{
std::unique_ptr<ConnectionFileDescriptor> conn_ap(new ConnectionFileDescriptor(pipe_fds[0], false));
std::unique_ptr<ConnectionFileDescriptor> conn_ap(new ConnectionFileDescriptor(pipe_fds[0], true));
if (conn_ap->IsConnected())
{
output_comm.SetConnection(conn_ap.release());
@ -654,13 +654,15 @@ ScriptInterpreterPython::ExecuteOneLine (const char *command, CommandReturnObjec
if (pipe_fds[0] != -1)
{
// Close write end of pipe so our communication thread exits
// Close the write end of the pipe since we are done with our
// one line script. This should cause the read thread that
// output_comm is using to exit
output_file_sp->GetFile().Close();
// The close above should cause this thread to exit when it gets
// to the end of file, so let it get all its data
output_comm.JoinReadThread();
// Now we can close the read end of the pipe
output_comm.Disconnect();
output_comm.StopReadThread();
// Close the read end of the pipe and don't close the write end
// since we called fdopen on it and gave the ownership to the
// connection in "output_comm"
::close (pipe_fds[0]);
}