Bug 1462784 - Annotate idle stacks in the chromium event loop. r?froydnj draft
authorMarkus Stange <mstange@themasta.com>
Fri, 18 May 2018 18:17:21 -0400
changeset 803067 ca005349400d2ef259293faf45730f3ff3785a7f
parent 803066 f9b44707b930939253b689ddb72430f622ff8b1f
child 803068 4eecd1d054e6342f2a1e9f039e77a8dd582d5f31
push id112022
push userbmo:mstange@themasta.com
push dateFri, 01 Jun 2018 21:00:49 +0000
reviewersfroydnj
bugs1462784
milestone62.0a1
Bug 1462784 - Annotate idle stacks in the chromium event loop. r?froydnj MozReview-Commit-ID: Ac8H02GKnmV
ipc/chromium/src/base/message_pump_default.cc
--- a/ipc/chromium/src/base/message_pump_default.cc
+++ b/ipc/chromium/src/base/message_pump_default.cc
@@ -16,16 +16,18 @@
 namespace base {
 
 MessagePumpDefault::MessagePumpDefault()
     : keep_running_(true),
       event_(false, false) {
 }
 
 void MessagePumpDefault::Run(Delegate* delegate) {
+  AUTO_PROFILER_LABEL("MessagePumpDefault::Run", OTHER);
+
   DCHECK(keep_running_) << "Quit must have been called outside of Run!";
 
   const MessageLoop* const loop = MessageLoop::current();
   mozilla::BackgroundHangMonitor hangMonitor(
     loop->thread_name().c_str(),
     loop->transient_hang_timeout(),
     loop->permanent_hang_timeout());
 
@@ -50,26 +52,26 @@ void MessagePumpDefault::Run(Delegate* d
     if (!keep_running_)
       break;
 
     if (did_work)
       continue;
 
     if (delayed_work_time_.is_null()) {
       hangMonitor.NotifyWait();
-      AUTO_PROFILER_LABEL("MessagePumpDefault::Run:Wait", OTHER);
+      AUTO_PROFILER_LABEL("MessagePumpDefault::Run:Wait", IDLE);
       {
         AUTO_PROFILER_THREAD_SLEEP;
         event_.Wait();
       }
     } else {
       TimeDelta delay = delayed_work_time_ - TimeTicks::Now();
       if (delay > TimeDelta()) {
         hangMonitor.NotifyWait();
-        AUTO_PROFILER_LABEL("MessagePumpDefault::Run:Wait", OTHER);
+        AUTO_PROFILER_LABEL("MessagePumpDefault::Run:Wait", IDLE);
         {
           AUTO_PROFILER_THREAD_SLEEP;
           event_.TimedWait(delay);
         }
       } else {
         // It looks like delayed_work_time_ indicates a time in the past, so we
         // need to call DoDelayedWork now.
         delayed_work_time_ = TimeTicks();