diff options
author | Pavel Labath <labath@google.com> | 2015-07-15 17:20:01 +0000 |
---|---|---|
committer | Pavel Labath <labath@google.com> | 2015-07-15 17:20:01 +0000 |
commit | 827965c33c5aae9440c4744e0c65a43db3f18cd6 (patch) | |
tree | bfb66bffdae3477b9a622be42b5d67883f262120 /lldb/source/Plugins/Process/gdb-remote | |
parent | 2e668b2d11177e3f83147133ad4d6512a00f97aa (diff) | |
download | bcm5719-llvm-827965c33c5aae9440c4744e0c65a43db3f18cd6.tar.gz bcm5719-llvm-827965c33c5aae9440c4744e0c65a43db3f18cd6.zip |
[NativeProcessLinux] Integrate MainLoop
Summary:
This commit integrates MainLoop into NativeProcessLinux. By registering a SIGCHLD handler with
the llgs main loop, we can get rid of the special monitor thread in NPL, which saves as a lot of
thread ping-pong when responding to client requests (e.g. qThreadInfo processing time has been
reduced by about 40%). It also makes the code simpler, IMHO.
Reviewers: ovyalov, clayborg, tberghammer, chaoren
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D11150
llvm-svn: 242305
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote')
-rw-r--r-- | lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp | 17 | ||||
-rw-r--r-- | lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h | 3 |
2 files changed, 2 insertions, 18 deletions
diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp index c4523252f19..c00ea9257f2 100644 --- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp @@ -96,20 +96,6 @@ GDBRemoteCommunicationServerLLGS::GDBRemoteCommunicationServerLLGS( RegisterPacketHandlers(); } -//---------------------------------------------------------------------- -// Destructor -//---------------------------------------------------------------------- -GDBRemoteCommunicationServerLLGS::~GDBRemoteCommunicationServerLLGS() -{ - Mutex::Locker locker (m_debugged_process_mutex); - - if (m_debugged_process_sp) - { - m_debugged_process_sp->Terminate (); - m_debugged_process_sp.reset (); - } -} - void GDBRemoteCommunicationServerLLGS::RegisterPacketHandlers() { @@ -223,6 +209,7 @@ GDBRemoteCommunicationServerLLGS::LaunchProcess () error = NativeProcessProtocol::Launch( m_process_launch_info, *this, + m_mainloop, m_debugged_process_sp); } @@ -308,7 +295,7 @@ GDBRemoteCommunicationServerLLGS::AttachToProcess (lldb::pid_t pid) } // Try to attach. - error = NativeProcessProtocol::Attach(pid, *this, m_debugged_process_sp); + error = NativeProcessProtocol::Attach(pid, *this, m_mainloop, m_debugged_process_sp); if (!error.Success ()) { fprintf (stderr, "%s: failed to attach to process %" PRIu64 ": %s", __FUNCTION__, pid, error.AsCString ()); diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h index 29f3fdebcfb..74e3a33c60a 100644 --- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h +++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h @@ -42,9 +42,6 @@ public: //------------------------------------------------------------------ GDBRemoteCommunicationServerLLGS(const lldb::PlatformSP& platform_sp, MainLoop &mainloop); - virtual - ~GDBRemoteCommunicationServerLLGS(); - //------------------------------------------------------------------ /// Specify the program to launch and its arguments. /// |