summaryrefslogtreecommitdiffstats
path: root/base/process_util_win.cc
diff options
context:
space:
mode:
authoragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-21 20:01:31 +0000
committeragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-21 20:01:31 +0000
commit8cd77dc30ea2528c7190b4e4629e560118d568b6 (patch)
treedd2f2e2f3d1f39efd0474823455a78a86a246c26 /base/process_util_win.cc
parent2fec49dae9e67e1133d8884627c05f74c6ac3e59 (diff)
downloadchromium_src-8cd77dc30ea2528c7190b4e4629e560118d568b6.zip
chromium_src-8cd77dc30ea2528c7190b4e4629e560118d568b6.tar.gz
chromium_src-8cd77dc30ea2528c7190b4e4629e560118d568b6.tar.bz2
POSIX: Get render_process_host to build.
This is an adopted CL from Evan. Original: http://codereview.chromium.org/14504 (see original for review comments etc) Review URL: http://codereview.chromium.org/16814 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8384 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/process_util_win.cc')
-rw-r--r--base/process_util_win.cc25
1 files changed, 14 insertions, 11 deletions
diff --git a/base/process_util_win.cc b/base/process_util_win.cc
index a69f5d5..f1fd72c 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;
}