Index: base/process_util_win.cc |
diff --git a/base/process_util_win.cc b/base/process_util_win.cc |
index a69f5d5fdc8a51a935cc6bc5abf581688f79d97c..f1fd72caa5a2e478e82bcff86a11aebbd37a46f9 100644 |
--- a/base/process_util_win.cc |
+++ b/base/process_util_win.cc |
@@ -153,21 +153,24 @@ bool LaunchApp(const CommandLine& cl, |
// entry structure, giving it the specified exit code. |
// Returns true if this is successful, false otherwise. |
bool KillProcess(int process_id, int exit_code, bool wait) { |
- bool result = false; |
HANDLE process = OpenProcess(PROCESS_TERMINATE | SYNCHRONIZE, |
FALSE, // Don't inherit handle |
process_id); |
- if (process) { |
- result = !!TerminateProcess(process, exit_code); |
- if (result && wait) { |
- // The process may not end immediately due to pending I/O |
- if (WAIT_OBJECT_0 != WaitForSingleObject(process, 60 * 1000)) |
- DLOG(ERROR) << "Error waiting for process exit: " << GetLastError(); |
- } else { |
- DLOG(ERROR) << "Unable to terminate process: " << GetLastError(); |
- } |
- CloseHandle(process); |
+ if (process) |
+ return KillProcess(process, exit_code, wait); |
+ return false; |
+} |
+ |
+bool KillProcess(HANDLE process, int exit_code, bool wait) { |
+ bool result = !!TerminateProcess(process, exit_code); |
+ if (result && wait) { |
+ // The process may not end immediately due to pending I/O |
+ if (WAIT_OBJECT_0 != WaitForSingleObject(process, 60 * 1000)) |
+ DLOG(ERROR) << "Error waiting for process exit: " << GetLastError(); |
+ } else { |
+ DLOG(ERROR) << "Unable to terminate process: " << GetLastError(); |
} |
+ CloseHandle(process); |
return result; |
} |