Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(22)

Side by Side Diff: base/process_util.h

Issue 100127: POSIX: Add code for shuffling file descriptors. (Closed)
Patch Set: ... Created 11 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/file_descriptor_shuffle_unittest.cc ('k') | base/process_util_linux.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 10
(...skipping 26 matching lines...) Expand all
37 }; 37 };
38 38
39 struct IoCounters { 39 struct IoCounters {
40 unsigned long long ReadOperationCount; 40 unsigned long long ReadOperationCount;
41 unsigned long long WriteOperationCount; 41 unsigned long long WriteOperationCount;
42 unsigned long long OtherOperationCount; 42 unsigned long long OtherOperationCount;
43 unsigned long long ReadTransferCount; 43 unsigned long long ReadTransferCount;
44 unsigned long long WriteTransferCount; 44 unsigned long long WriteTransferCount;
45 unsigned long long OtherTransferCount; 45 unsigned long long OtherTransferCount;
46 }; 46 };
47
48 #include "base/file_descriptor_shuffle.h"
47 #endif 49 #endif
48 50
49 #if defined(OS_MACOSX) 51 #if defined(OS_MACOSX)
50 struct kinfo_proc; 52 struct kinfo_proc;
51 #endif 53 #endif
52 54
53 namespace base { 55 namespace base {
54 56
55 // A minimalistic but hopefully cross-platform set of exit codes. 57 // A minimalistic but hopefully cross-platform set of exit codes.
56 // Do not change the enumeration values or you will break third-party 58 // Do not change the enumeration values or you will break third-party
(...skipping 18 matching lines...) Expand all
75 void CloseProcessHandle(ProcessHandle process); 77 void CloseProcessHandle(ProcessHandle process);
76 78
77 // Returns the unique ID for the specified process. This is functionally the 79 // Returns the unique ID for the specified process. This is functionally the
78 // same as Windows' GetProcessId(), but works on versions of Windows before 80 // same as Windows' GetProcessId(), but works on versions of Windows before
79 // Win XP SP1 as well. 81 // Win XP SP1 as well.
80 ProcessId GetProcId(ProcessHandle process); 82 ProcessId GetProcId(ProcessHandle process);
81 83
82 #if defined(OS_POSIX) 84 #if defined(OS_POSIX)
83 // Sets all file descriptors to close on exec except for stdin, stdout 85 // Sets all file descriptors to close on exec except for stdin, stdout
84 // and stderr. 86 // and stderr.
87 // TODO(agl): remove this function
88 // WARNING: do not use. It's inherently race-prone in the face of
89 // multi-threading.
85 void SetAllFDsToCloseOnExec(); 90 void SetAllFDsToCloseOnExec();
91 // Close all file descriptors, expect those which are a destination in the
92 // given multimap. Only call this function in a child process where you know
93 // that there aren't any other threads.
94 void CloseSuperfluousFds(const base::InjectiveMultimap& saved_map);
86 #endif 95 #endif
87 96
88 #if defined(OS_WIN) 97 #if defined(OS_WIN)
89 // Runs the given application name with the given command line. Normally, the 98 // Runs the given application name with the given command line. Normally, the
90 // first command line argument should be the path to the process, and don't 99 // first command line argument should be the path to the process, and don't
91 // forget to quote it. 100 // forget to quote it.
92 // 101 //
93 // If wait is true, it will block and wait for the other process to finish, 102 // If wait is true, it will block and wait for the other process to finish,
94 // otherwise, it will just continue asynchronously. 103 // otherwise, it will just continue asynchronously.
95 // 104 //
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 // overflow. Has no effect if the OS doesn't provide the necessary facility. 381 // overflow. Has no effect if the OS doesn't provide the necessary facility.
373 void EnableTerminationOnHeapCorruption(); 382 void EnableTerminationOnHeapCorruption();
374 383
375 // If supported on the platform, and the user has sufficent rights, increase 384 // If supported on the platform, and the user has sufficent rights, increase
376 // the current process's scheduling priority to a high priority. 385 // the current process's scheduling priority to a high priority.
377 void RaiseProcessToHighPriority(); 386 void RaiseProcessToHighPriority();
378 387
379 } // namespace base 388 } // namespace base
380 389
381 #endif // BASE_PROCESS_UTIL_H_ 390 #endif // BASE_PROCESS_UTIL_H_
OLDNEW
« no previous file with comments | « base/file_descriptor_shuffle_unittest.cc ('k') | base/process_util_linux.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698