Stop process monitor from ProcessPOSIX::Finalize

llvm-svn: 186039
diff --git a/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h b/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h
index d8f3f22..5df8d82 100644
--- a/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h
+++ b/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h
@@ -190,6 +190,8 @@
     lldb_private::Error
     Detach(lldb::tid_t tid);
 
+    void
+    StopMonitor();
 
 private:
     ProcessFreeBSD *m_process;
@@ -309,9 +311,6 @@
     void
     StopMonitoringChildProcess();
 
-    void 
-    StopMonitor();
-
     /// Stops the operation thread used to attach/launch a process.
     void
     StopOpThread();
diff --git a/lldb/source/Plugins/Process/Linux/ProcessMonitor.h b/lldb/source/Plugins/Process/Linux/ProcessMonitor.h
index dfb4601..2de6bc0 100644
--- a/lldb/source/Plugins/Process/Linux/ProcessMonitor.h
+++ b/lldb/source/Plugins/Process/Linux/ProcessMonitor.h
@@ -177,6 +177,10 @@
     lldb_private::Error
     Detach(lldb::tid_t tid);
 
+    /// Stops the monitoring the child process thread.
+    void
+    StopMonitor();
+
     /// Stops the requested thread and waits for the stop signal.
     bool
     StopThread(lldb::tid_t tid);
@@ -302,9 +306,6 @@
     void
     StopMonitoringChildProcess();
 
-    void 
-    StopMonitor();
-
     /// Stops the operation thread used to attach/launch a process.
     void
     StopOpThread();
diff --git a/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp b/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp
index d55609a..ba6879c 100644
--- a/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp
+++ b/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp
@@ -93,6 +93,14 @@
 
 //------------------------------------------------------------------------------
 // Process protocol.
+void
+ProcessPOSIX::Finalize()
+{
+  Process::Finalize();
+
+  if (m_monitor)
+    m_monitor->StopMonitor();
+}
 
 bool
 ProcessPOSIX::CanDebug(Target &target, bool plugin_specified_by_name)
diff --git a/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.h b/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.h
index a865fe2..fd029ef 100644
--- a/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.h
+++ b/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.h
@@ -40,6 +40,9 @@
     //------------------------------------------------------------------
     // Process protocol.
     //------------------------------------------------------------------
+    virtual void
+    Finalize();
+
     virtual bool
     CanDebug(lldb_private::Target &target, bool plugin_specified_by_name);