[Lldb-commits] [lldb] r122835 - in /lldb/trunk/source/Plugins/Process/Linux: ProcessMonitor.cpp ProcessMonitor.h

Stephen Wilson wilsons at start.ca
Tue Jan 4 13:40:25 PST 2011


Author: wilsons
Date: Tue Jan  4 15:40:25 2011
New Revision: 122835

URL: http://llvm.org/viewvc/llvm-project?rev=122835&view=rev
Log:

Host::StopMonitoringChildProcess has been removed.  Provide a substitute.


Modified:
    lldb/trunk/source/Plugins/Process/Linux/ProcessMonitor.cpp
    lldb/trunk/source/Plugins/Process/Linux/ProcessMonitor.h

Modified: lldb/trunk/source/Plugins/Process/Linux/ProcessMonitor.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Linux/ProcessMonitor.cpp?rev=122835&r1=122834&r2=122835&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Linux/ProcessMonitor.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Linux/ProcessMonitor.cpp Tue Jan  4 15:40:25 2011
@@ -459,7 +459,7 @@
       m_operation_thread(LLDB_INVALID_HOST_THREAD),
       m_pid(LLDB_INVALID_PROCESS_ID),
       m_terminal_fd(-1),
-      m_monitor_handle(0),
+      m_monitor_thread(LLDB_INVALID_HOST_THREAD),
       m_client_fd(-1),
       m_server_fd(-1)
 {
@@ -499,7 +499,7 @@
     }
 
     // Finally, start monitoring the child process for change in state.
-    if (!(m_monitor_handle = Host::StartMonitoringChildProcess(
+    if (!(m_monitor_thread = Host::StartMonitoringChildProcess(
               ProcessMonitor::MonitorCallback, this, GetPID(), true)))
     {
         error.SetErrorToGenericError();
@@ -510,7 +510,7 @@
 
 ProcessMonitor::~ProcessMonitor()
 {
-    Host::StopMonitoringChildProcess(m_monitor_handle);
+    StopMonitoringChildProcess();
     StopOperationThread();
 
     close(m_terminal_fd);
@@ -923,3 +923,16 @@
 
     return (dup2(fd, target_fd) == -1) ? false : true;
 }
+
+void
+ProcessMonitor::StopMonitoringChildProcess()
+{
+    lldb::thread_result_t thread_result;
+
+    if (m_monitor_thread != LLDB_INVALID_HOST_THREAD)
+    {
+        Host::ThreadCancel(m_monitor_thread, NULL);
+        Host::ThreadJoin(m_monitor_thread, &thread_result, NULL);
+        m_monitor_thread = LLDB_INVALID_HOST_THREAD;
+    }
+}

Modified: lldb/trunk/source/Plugins/Process/Linux/ProcessMonitor.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Linux/ProcessMonitor.h?rev=122835&r1=122834&r2=122835&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Linux/ProcessMonitor.h (original)
+++ lldb/trunk/source/Plugins/Process/Linux/ProcessMonitor.h Tue Jan  4 15:40:25 2011
@@ -140,7 +140,7 @@
     lldb::pid_t m_pid;
     int m_terminal_fd;
 
-    uint32_t m_monitor_handle;
+    uint32_t m_monitor_thread;
 
     lldb_private::Mutex m_server_mutex;
     int m_client_fd;
@@ -203,6 +203,9 @@
 
     void
     DoOperation(Operation *op);
+
+    /// Stops the child monitor thread.
+    void StopMonitoringChildProcess();
 };
 
 #endif // #ifndef liblldb_ProcessMonitor_H_





More information about the lldb-commits mailing list