summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp
diff options
context:
space:
mode:
authorStephen Wilson <wilsons@start.ca>2011-01-04 21:40:25 +0000
committerStephen Wilson <wilsons@start.ca>2011-01-04 21:40:25 +0000
commit9212d7f7ae6ed14326ffd349738bdd6a71d195de (patch)
tree0b9c1bad1de739664fe285295f3ed81fc3dadf0c /lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp
parent5a8feeaf8a4895d4d7ab9c180cbe1cb4705bd910 (diff)
downloadbcm5719-llvm-9212d7f7ae6ed14326ffd349738bdd6a71d195de.tar.gz
bcm5719-llvm-9212d7f7ae6ed14326ffd349738bdd6a71d195de.zip
Host::StopMonitoringChildProcess has been removed. Provide a substitute.
llvm-svn: 122835
Diffstat (limited to 'lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp')
-rw-r--r--lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp b/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp
index 0b47fc7e15f..e6a7d6f92f7 100644
--- a/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp
+++ b/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp
@@ -459,7 +459,7 @@ ProcessMonitor::ProcessMonitor(ProcessLinux *process,
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 @@ WAIT_AGAIN:
}
// 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 @@ WAIT_AGAIN:
ProcessMonitor::~ProcessMonitor()
{
- Host::StopMonitoringChildProcess(m_monitor_handle);
+ StopMonitoringChildProcess();
StopOperationThread();
close(m_terminal_fd);
@@ -923,3 +923,16 @@ ProcessMonitor::DupDescriptor(const char *path, int fd, int flags)
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;
+ }
+}
OpenPOWER on IntegriCloud