OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // This file/namespace contains utility functions for enumerating, ending and | 5 // This file/namespace contains utility functions for enumerating, ending and |
6 // computing statistics of processes. | 6 // computing statistics of processes. |
7 | 7 |
8 #ifndef BASE_PROCESS_UTIL_H_ | 8 #ifndef BASE_PROCESS_UTIL_H_ |
9 #define BASE_PROCESS_UTIL_H_ | 9 #define BASE_PROCESS_UTIL_H_ |
10 #pragma once | 10 #pragma once |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
252 // the token belonging to an interactive logon session. | 252 // the token belonging to an interactive logon session. |
253 // | 253 // |
254 // To avoid hard to diagnose problems, when specified this loads the | 254 // To avoid hard to diagnose problems, when specified this loads the |
255 // environment variables associated with the user and if this operation fails | 255 // environment variables associated with the user and if this operation fails |
256 // the entire call fails as well. | 256 // the entire call fails as well. |
257 UserTokenHandle as_user; | 257 UserTokenHandle as_user; |
258 | 258 |
259 // If true, use an empty string for the desktop name. | 259 // If true, use an empty string for the desktop name. |
260 bool empty_desktop_name; | 260 bool empty_desktop_name; |
261 | 261 |
262 // If non-NULL, launches the application in that job object. | 262 // If non-NULL, launches the application in that job object. The process will |
| 263 // be terminated immediately and LaunchProcess() will fail if assignment to |
| 264 // the job object fails. |
263 HANDLE job_handle; | 265 HANDLE job_handle; |
264 #else | 266 #else |
265 // If non-NULL, set/unset environment variables. | 267 // If non-NULL, set/unset environment variables. |
266 // See documentation of AlterEnvironment(). | 268 // See documentation of AlterEnvironment(). |
267 // This pointer is owned by the caller and must live through the | 269 // This pointer is owned by the caller and must live through the |
268 // call to LaunchProcess(). | 270 // call to LaunchProcess(). |
269 const EnvironmentVector* environ; | 271 const EnvironmentVector* environ; |
270 | 272 |
271 // If non-NULL, remap file descriptors according to the mapping of | 273 // If non-NULL, remap file descriptors according to the mapping of |
272 // src fd->dest fd to propagate FDs into the child process. | 274 // src fd->dest fd to propagate FDs into the child process. |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
315 // |synchronize| and |wait| must not both be set simultaneously. | 317 // |synchronize| and |wait| must not both be set simultaneously. |
316 LaunchSynchronizationHandle* synchronize; | 318 LaunchSynchronizationHandle* synchronize; |
317 #endif // defined(OS_MACOSX) | 319 #endif // defined(OS_MACOSX) |
318 | 320 |
319 #endif // !defined(OS_WIN) | 321 #endif // !defined(OS_WIN) |
320 }; | 322 }; |
321 | 323 |
322 // Launch a process via the command line |cmdline|. | 324 // Launch a process via the command line |cmdline|. |
323 // See the documentation of LaunchOptions for details on |options|. | 325 // See the documentation of LaunchOptions for details on |options|. |
324 // | 326 // |
325 // If |process_handle| is non-NULL, it will be filled in with the | 327 // Returns true upon success. |
| 328 // |
| 329 // Upon success, if |process_handle| is non-NULL, it will be filled in with the |
326 // handle of the launched process. NOTE: In this case, the caller is | 330 // handle of the launched process. NOTE: In this case, the caller is |
327 // responsible for closing the handle so that it doesn't leak! | 331 // responsible for closing the handle so that it doesn't leak! |
328 // Otherwise, the process handle will be implicitly closed. | 332 // Otherwise, the process handle will be implicitly closed. |
329 // | 333 // |
330 // Unix-specific notes: | 334 // Unix-specific notes: |
331 // - All file descriptors open in the parent process will be closed in the | 335 // - All file descriptors open in the parent process will be closed in the |
332 // child process except for any preserved by options::fds_to_remap, and | 336 // child process except for any preserved by options::fds_to_remap, and |
333 // stdin, stdout, and stderr. If not remapped by options::fds_to_remap, | 337 // stdin, stdout, and stderr. If not remapped by options::fds_to_remap, |
334 // stdin is reopened as /dev/null, and the child is allowed to inherit its | 338 // stdin is reopened as /dev/null, and the child is allowed to inherit its |
335 // parent's stdout and stderr. | 339 // parent's stdout and stderr. |
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
827 // instance running inside the parent. The parent's Breakpad instance should | 831 // instance running inside the parent. The parent's Breakpad instance should |
828 // not handle the child's exceptions. Calling RestoreDefaultExceptionHandler | 832 // not handle the child's exceptions. Calling RestoreDefaultExceptionHandler |
829 // in the child after forking will restore the standard exception handler. | 833 // in the child after forking will restore the standard exception handler. |
830 // See http://crbug.com/20371/ for more details. | 834 // See http://crbug.com/20371/ for more details. |
831 void RestoreDefaultExceptionHandler(); | 835 void RestoreDefaultExceptionHandler(); |
832 #endif // defined(OS_MACOSX) | 836 #endif // defined(OS_MACOSX) |
833 | 837 |
834 } // namespace base | 838 } // namespace base |
835 | 839 |
836 #endif // BASE_PROCESS_UTIL_H_ | 840 #endif // BASE_PROCESS_UTIL_H_ |
OLD | NEW |