1b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat// Use of this source code is governed by a BSD-style license that can be 3b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat// found in the LICENSE file. 4b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 5b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat#include "base/process/kill.h" 6b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 7b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat#include "base/process/process_iterator.h" 8b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 9b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Eratnamespace base { 10b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 11b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Eratbool KillProcesses(const FilePath::StringType& executable_name, 12b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat int exit_code, 13b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat const ProcessFilter* filter) { 14b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat bool result = true; 15b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat NamedProcessIterator iter(executable_name, filter); 16b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat while (const ProcessEntry* entry = iter.NextProcessEntry()) { 17b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat Process process = Process::Open(entry->pid()); 18b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat result &= process.Terminate(exit_code, true); 19b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat } 20b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat return result; 21b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat} 22b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 23b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat} // namespace base 24