Don't call CloseHandle() twice on Windows (as it causes crashes, or unexpected behavior). This would happen with the following test case:

ProcessHandle handle = Process.launch(...);
handle.kill();
Then as handle gets out of scope, ~ProcessHandle would call CloseHandle() on an already closed handle.
This commit is contained in:
Patrice Tarabbia
2013-05-01 06:41:45 -04:00
parent e06fec0e24
commit c59f8865ac
14 changed files with 67 additions and 33 deletions

View File

@@ -137,7 +137,7 @@ ProcessHandleImpl* ProcessImpl::launchImpl(const std::string& command, const Arg
}
void ProcessImpl::killImpl(const ProcessHandleImpl& handle)
void ProcessImpl::killImpl(ProcessHandleImpl& handle)
{
killImpl(handle.id());
}