diff options
| author | Stephen Wilson <wilsons@start.ca> | 2011-01-04 21:40:25 +0000 |
|---|---|---|
| committer | Stephen Wilson <wilsons@start.ca> | 2011-01-04 21:40:25 +0000 |
| commit | 9212d7f7ae6ed14326ffd349738bdd6a71d195de (patch) | |
| tree | 0b9c1bad1de739664fe285295f3ed81fc3dadf0c /lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp | |
| parent | 5a8feeaf8a4895d4d7ab9c180cbe1cb4705bd910 (diff) | |
| download | bcm5719-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.cpp | 19 |
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; + } +} |

