Index: session_manager_service.cc |
diff --git a/session_manager_service.cc b/session_manager_service.cc |
index f11ce4da1fb9eb913a64c7a432c141e8c4ff026a..341ef1c65c03b4ca30a182c4c3aeb569cbaed8bb 100644 |
--- a/session_manager_service.cc |
+++ b/session_manager_service.cc |
@@ -198,6 +198,7 @@ bool SessionManagerService::Run() { |
} |
int SessionManagerService::RunChild() { |
+ child_job_->RecordTime(); |
int pid = fork(); |
if (pid == 0) { |
// In the child. |
@@ -316,7 +317,7 @@ void SessionManagerService::HandleChildExit(GPid pid, |
// If the child _ever_ exits uncleanly, we want to start it up again. |
SessionManagerService* manager = static_cast<SessionManagerService*>(data); |
- if (exited_clean) { |
+ if (exited_clean || manager->should_stop_child()) { |
ServiceShutdown(data); |
} else if (manager->should_run_child()) { |
// TODO(cmasone): deal with fork failing in RunChild() |