Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / base / threading / worker_pool_posix.cc
index c4c523f..cd3c9dc 100644 (file)
@@ -71,7 +71,7 @@ class WorkerThread : public PlatformThread::Delegate {
       : name_prefix_(name_prefix),
         pool_(pool) {}
 
-  virtual void ThreadMain() OVERRIDE;
+  void ThreadMain() override;
 
  private:
   const std::string name_prefix_;
@@ -91,18 +91,19 @@ void WorkerThread::ThreadMain() {
     PendingTask pending_task = pool_->WaitForTask();
     if (pending_task.task.is_null())
       break;
-    TRACE_EVENT2("task", "WorkerThread::ThreadMain::Run",
+    TRACE_EVENT2("toplevel", "WorkerThread::ThreadMain::Run",
         "src_file", pending_task.posted_from.file_name(),
         "src_func", pending_task.posted_from.function_name());
 
-    TrackedTime start_time =
-        tracked_objects::ThreadData::NowForStartOfRun(pending_task.birth_tally);
-
+    tracked_objects::ThreadData::PrepareForStartOfRun(pending_task.birth_tally);
+    tracked_objects::TaskStopwatch stopwatch;
+    stopwatch.Start();
     pending_task.task.Run();
+    stopwatch.Stop();
 
     tracked_objects::ThreadData::TallyRunOnWorkerThreadIfTracking(
         pending_task.birth_tally, TrackedTime(pending_task.time_posted),
-        start_time, tracked_objects::ThreadData::NowForEndOfRun());
+        stopwatch);
   }
 
   // The WorkerThread is non-joinable, so it deletes itself.