| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <dirent.h> | 5 #include <dirent.h> |
| 6 #include <errno.h> | 6 #include <errno.h> |
| 7 #include <fcntl.h> | 7 #include <fcntl.h> |
| 8 #include <signal.h> | 8 #include <signal.h> |
| 9 #include <stdlib.h> | 9 #include <stdlib.h> |
| 10 #include <sys/resource.h> | 10 #include <sys/resource.h> |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 262 } | 262 } |
| 263 } | 263 } |
| 264 | 264 |
| 265 // Sets all file descriptors to close on exec except for stdin, stdout | 265 // Sets all file descriptors to close on exec except for stdin, stdout |
| 266 // and stderr. | 266 // and stderr. |
| 267 // TODO(agl): Remove this function. It's fundamentally broken for multithreaded | 267 // TODO(agl): Remove this function. It's fundamentally broken for multithreaded |
| 268 // apps. | 268 // apps. |
| 269 void SetAllFDsToCloseOnExec() { | 269 void SetAllFDsToCloseOnExec() { |
| 270 #if defined(OS_LINUX) | 270 #if defined(OS_LINUX) |
| 271 const char fd_dir[] = "/proc/self/fd"; | 271 const char fd_dir[] = "/proc/self/fd"; |
| 272 #elif defined(OS_MACOSX) || defined(OS_FREEBSD) || defined(OS_SOLARIS) | 272 #elif defined(OS_MACOSX) || defined(OS_FREEBSD) || defined(OS_OPENBSD) || \ |
| 273 defined(OS_SOLARIS) |
| 273 const char fd_dir[] = "/dev/fd"; | 274 const char fd_dir[] = "/dev/fd"; |
| 274 #endif | 275 #endif |
| 275 ScopedDIR dir_closer(opendir(fd_dir)); | 276 ScopedDIR dir_closer(opendir(fd_dir)); |
| 276 DIR *dir = dir_closer.get(); | 277 DIR *dir = dir_closer.get(); |
| 277 if (NULL == dir) { | 278 if (NULL == dir) { |
| 278 DLOG(ERROR) << "Unable to open " << fd_dir; | 279 DLOG(ERROR) << "Unable to open " << fd_dir; |
| 279 return; | 280 return; |
| 280 } | 281 } |
| 281 | 282 |
| 282 struct dirent *ent; | 283 struct dirent *ent; |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 472 | 473 |
| 473 #if !defined(OS_MACOSX) | 474 #if !defined(OS_MACOSX) |
| 474 ProcessMetrics::ProcessMetrics(ProcessHandle process) | 475 ProcessMetrics::ProcessMetrics(ProcessHandle process) |
| 475 #else | 476 #else |
| 476 ProcessMetrics::ProcessMetrics(ProcessHandle process, | 477 ProcessMetrics::ProcessMetrics(ProcessHandle process, |
| 477 ProcessMetrics::PortProvider* port_provider) | 478 ProcessMetrics::PortProvider* port_provider) |
| 478 #endif | 479 #endif |
| 479 : process_(process), | 480 : process_(process), |
| 480 last_time_(0), | 481 last_time_(0), |
| 481 last_system_time_(0) | 482 last_system_time_(0) |
| 482 #if defined(OS_LINUX) | 483 #if defined(OS_MACOSX) |
| 484 , port_provider_(port_provider) |
| 485 #elif defined(OS_POSIX) |
| 483 , last_cpu_(0) | 486 , last_cpu_(0) |
| 484 #elif defined(OS_MACOSX) | |
| 485 , port_provider_(port_provider) | |
| 486 #endif | 487 #endif |
| 487 { | 488 { |
| 488 processor_count_ = base::SysInfo::NumberOfProcessors(); | 489 processor_count_ = base::SysInfo::NumberOfProcessors(); |
| 489 } | 490 } |
| 490 | 491 |
| 491 // static | 492 // static |
| 492 #if !defined(OS_MACOSX) | 493 #if !defined(OS_MACOSX) |
| 493 ProcessMetrics* ProcessMetrics::CreateProcessMetrics(ProcessHandle process) { | 494 ProcessMetrics* ProcessMetrics::CreateProcessMetrics(ProcessHandle process) { |
| 494 return new ProcessMetrics(process); | 495 return new ProcessMetrics(process); |
| 495 } | 496 } |
| (...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 787 const ProcessFilter* filter) { | 788 const ProcessFilter* filter) { |
| 788 bool exited_cleanly = | 789 bool exited_cleanly = |
| 789 WaitForProcessesToExit(executable_name, wait_milliseconds, | 790 WaitForProcessesToExit(executable_name, wait_milliseconds, |
| 790 filter); | 791 filter); |
| 791 if (!exited_cleanly) | 792 if (!exited_cleanly) |
| 792 KillProcesses(executable_name, exit_code, filter); | 793 KillProcesses(executable_name, exit_code, filter); |
| 793 return exited_cleanly; | 794 return exited_cleanly; |
| 794 } | 795 } |
| 795 | 796 |
| 796 } // namespace base | 797 } // namespace base |
| OLD | NEW |