Looks fine to me, check it in and we will deal with any fallout. Greg
On May 21, 2013, at 2:58 PM, Mike Sartain <[email protected]> wrote: > Just pinging on this one to see if it's ok? > > Thanks much. > > From: [email protected] [[email protected]] on behalf > of Matthew Sorrels [[email protected]] > Sent: Friday, May 17, 2013 2:39 PM > To: [email protected] > Subject: [lldb-dev] Patch for garbage characters on quit > > It's possible others aren't seeing this but on Ubuntu 12.04 64 bits, when I > exit lldb I get a few randomish garbage characters spewed to the terminal. > It appears the problem is the shutdown of master_out_comm in > tools/driver/Driver.cpp around line 1591. But I'm not sure I know enough > about how this works to say what I'm doing to fix it is the best solution. > Other code for handling a Communication clear appears to shut them down by > doing the following: > > SetReadThreadBytesReceivedCallback (NULL, NULL); > Disconnect (NULL); > StopReadThread (NULL); > > Using this sequence on the master_out_comm seems to stop it from spewing > random characters while quiting. Just stoping the read thread wasn't a good > solution, since it caused a huge pause. Had to set the callback to NULL and > disconnect first. > > It also seemed kind of odd to me that you are closing the editline_output_pty > before shutting down master_out_comm and out_comm_2 (which both were passed > the editline file descriptor). So I moved that CloseMasterFileDescriptor > down after shutting down master_out_comm and out_comm_2. Not sure this > really needed to be done(didn't make any visible difference), but it felt > right. > > Here's the patch -- it seems to work for me (but I have no Mac to test it > on), it's very possible I'm completely misunderstanding how this should work. > I'm still trying to get my feet wet on this code base. Thanks, > > > > Index: tools/driver/Driver.cpp > =================================================================== > --- tools/driver/Driver.cpp (revision 182137) > +++ tools/driver/Driver.cpp (working copy) > @@ -1587,9 +1587,16 @@ > } > } > > - editline_output_pty.CloseMasterFileDescriptor(); > + > + master_out_comm.SetReadThreadBytesReceivedCallback(NULL, NULL); > master_out_comm.Disconnect(); > + master_out_comm.ReadThreadStop(); > + > + out_comm_2.SetReadThreadBytesReceivedCallback(NULL, NULL); > out_comm_2.Disconnect(); > + out_comm_2.ReadThreadStop(); > + > + editline_output_pty.CloseMasterFileDescriptor(); > reset_stdin_termios(); > fclose (stdin); > > > _______________________________________________ > lldb-dev mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev _______________________________________________ lldb-dev mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
