| Index: base/threading/sequenced_worker_pool.cc
|
| ===================================================================
|
| --- base/threading/sequenced_worker_pool.cc (revision 148495)
|
| +++ base/threading/sequenced_worker_pool.cc (working copy)
|
| @@ -35,16 +35,21 @@
|
|
|
| namespace {
|
|
|
| -struct SequencedTask {
|
| +struct SequencedTask : public TrackingInfo {
|
| SequencedTask()
|
| : sequence_token_id(0),
|
| shutdown_behavior(SequencedWorkerPool::BLOCK_SHUTDOWN) {}
|
|
|
| + explicit SequencedTask(const tracked_objects::Location& from_here)
|
| + : base::TrackingInfo(from_here, TimeTicks()),
|
| + sequence_token_id(0),
|
| + shutdown_behavior(SequencedWorkerPool::BLOCK_SHUTDOWN) {}
|
| +
|
| ~SequencedTask() {}
|
|
|
| int sequence_token_id;
|
| SequencedWorkerPool::WorkerShutdown shutdown_behavior;
|
| - tracked_objects::Location location;
|
| + tracked_objects::Location posted_from;
|
| Closure task;
|
| };
|
|
|
| @@ -481,10 +486,10 @@
|
| WorkerShutdown shutdown_behavior,
|
| const tracked_objects::Location& from_here,
|
| const Closure& task) {
|
| - SequencedTask sequenced;
|
| + SequencedTask sequenced(from_here);
|
| sequenced.sequence_token_id = sequence_token.id_;
|
| sequenced.shutdown_behavior = shutdown_behavior;
|
| - sequenced.location = from_here;
|
| + sequenced.posted_from = from_here;
|
| sequenced.task = task;
|
|
|
| int create_thread_id = 0;
|
| @@ -614,8 +619,14 @@
|
| this_worker->set_running_sequence(
|
| SequenceToken(task.sequence_token_id));
|
|
|
| + tracked_objects::TrackedTime start_time =
|
| + tracked_objects::ThreadData::NowForStartOfRun(task.birth_tally);
|
| +
|
| task.task.Run();
|
|
|
| + tracked_objects::ThreadData::TallyRunOnNamedThreadIfTracking(task,
|
| + start_time, tracked_objects::ThreadData::NowForEndOfRun());
|
| +
|
| this_worker->set_running_sequence(SequenceToken());
|
|
|
| // Make sure our task is erased outside the lock for the same reason
|
|
|