diff options
Diffstat (limited to 'lldb/source/Host/windows/HostProcessWindows.cpp')
-rw-r--r-- | lldb/source/Host/windows/HostProcessWindows.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lldb/source/Host/windows/HostProcessWindows.cpp b/lldb/source/Host/windows/HostProcessWindows.cpp index c42bc555906..d8e407c667a 100644 --- a/lldb/source/Host/windows/HostProcessWindows.cpp +++ b/lldb/source/Host/windows/HostProcessWindows.cpp @@ -31,11 +31,13 @@ struct MonitorInfo HostProcessWindows::HostProcessWindows() : HostNativeProcessBase() + , m_owns_handle(true) { } HostProcessWindows::HostProcessWindows(lldb::process_t process) : HostNativeProcessBase(process) + , m_owns_handle(true) { } @@ -44,6 +46,12 @@ HostProcessWindows::~HostProcessWindows() Close(); } +void +HostProcessWindows::SetOwnsHandle(bool owns) +{ + m_owns_handle = owns; +} + Error HostProcessWindows::Terminate() { Error error; @@ -123,7 +131,7 @@ HostProcessWindows::MonitorThread(void *thread_arg) void HostProcessWindows::Close() { - if (m_process != LLDB_INVALID_PROCESS) + if (m_owns_handle && m_process != LLDB_INVALID_PROCESS) ::CloseHandle(m_process); m_process = nullptr; } |