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

Unified Diff: base/process_util.h

Issue 5172009: This adds some plumbing for propagating the reason for a renderer's death (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Upload after sync for proper diffs Created 10 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | base/process_util_posix.cc » ('j') | chrome/browser/browser_child_process_host.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/process_util.h
diff --git a/base/process_util.h b/base/process_util.h
index ca4328939ef49c6e0426541beb2eb8ec69620abd..1e1ad1e5356da66e722dc8ec047eb101f36bcc7e 100644
--- a/base/process_util.h
+++ b/base/process_util.h
@@ -118,13 +118,25 @@ const uint32 kProcessAccessQueryLimitedInfomation = 0;
const uint32 kProcessAccessWaitForTermination = 0;
#endif // defined(OS_POSIX)
-// A minimalistic but hopefully cross-platform set of exit codes.
-// Do not change the enumeration values or you will break third-party
-// installers.
-enum {
- PROCESS_END_NORMAL_TERMINATION = 0,
- PROCESS_END_KILLED_BY_USER = 1,
- PROCESS_END_PROCESS_WAS_HUNG = 2
+// A minimalistic but hopefully cross-platform set of exit codes. Do
+// not change the enumeration values or you will break third-party
+// installers. You may use these as arguments for KillProcess*()
+// (among other uses).
+enum ExitCode {
brettw 2010/12/03 01:01:54 I'm kind of sad to see this enumeration here (I re
Greg Spencer (Chromium) 2010/12/03 18:29:25 Yeah, I'm not a big fan of this enum either, but t
brettw 2010/12/09 16:48:49 I don't really like the exit codes here, personall
brettw 2010/12/09 17:22:13 I'm more sure that I don't want this in base. The
Greg Spencer (Chromium) 2010/12/09 17:58:42 OK, as I said, I'm happy taking the exit code out
+ EXIT_CODE_NORMAL_TERMINATION = 0,
+ EXIT_CODE_PROCESS_WAS_KILLED = 1,
+ EXIT_CODE_PROCESS_WAS_HUNG = 2,
+};
+
+// Return status values from GetTerminationStatus. Don't use these as
+// arguments to KillProcess*(), use ExitCode values above instead.
+enum TerminationStatus {
+ TERMINATION_STATUS_NORMAL_TERMINATION = 0, // zero exit status
+ TERMINATION_STATUS_PROCESS_WAS_KILLED = 1, // e.g. SIGKILL or task manager
+ TERMINATION_STATUS_PROCESS_WAS_HUNG = 2,
+ TERMINATION_STATUS_PROCESS_CRASHED = 3, // e.g. Segmentation fault
+ TERMINATION_STATUS_ABNORMAL_TERMINATION = 4, // non-zero exit status
+ TERMINATION_STATUS_STILL_RUNNING = 5 // child hasn't exited yet
};
// Returns the id of the current process.
@@ -180,7 +192,7 @@ bool AdjustOOMScore(ProcessId process, int score);
#endif
#if defined(OS_POSIX)
-// Close all file descriptors, expect those which are a destination in the
+// Close all file descriptors, except those which are a destination in the
// given multimap. Only call this function in a child process where you know
// that there aren't any other threads.
void CloseSuperfluousFds(const InjectiveMultimap& saved_map);
@@ -347,10 +359,12 @@ bool KillProcessGroup(ProcessHandle process_group_id);
bool KillProcessById(ProcessId process_id, int exit_code, bool wait);
#endif
-// Get the termination status (exit code) of the process and return true if the
-// status indicates the process crashed. |child_exited| is set to true iff the
-// child process has terminated. (|child_exited| may be NULL.)
-bool DidProcessCrash(bool* child_exited, ProcessHandle handle);
+// Get the termination status of the process by interpreting the
+// circumstances of the child process' death. |exit_code| is set to
+// the status returned by waitpid() on POSIX, and from
+// GetExitCodeProcess() on Windows. |exit_code| may be NULL if the
+// caller is not interested in it.
+TerminationStatus GetTerminationStatus(ProcessHandle handle, int* exit_code);
// Waits for process to exit. In POSIX systems, if the process hasn't been
// signaled then puts the exit code in |exit_code|; otherwise it's considered
« no previous file with comments | « no previous file | base/process_util_posix.cc » ('j') | chrome/browser/browser_child_process_host.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698