From 8cd77dc30ea2528c7190b4e4629e560118d568b6 Mon Sep 17 00:00:00 2001 From: "agl@chromium.org" Date: Wed, 21 Jan 2009 20:01:31 +0000 Subject: 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 --- base/process_util_win.cc | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'base/process_util_win.cc') 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; } -- cgit v1.1