summaryrefslogtreecommitdiffstats
path: root/base/threading
diff options
context:
space:
mode:
authorakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-09 02:58:59 +0000
committerakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-09 02:58:59 +0000
commit2e2917c9acc57a1c71399fc4d0b46cd109ad7837 (patch)
tree92e9ef3c084c81617c267531e8180bdd1693ec0c /base/threading
parent799fe27b32f492e3392b3b1d58e605615bb27c47 (diff)
downloadchromium_src-2e2917c9acc57a1c71399fc4d0b46cd109ad7837.zip
chromium_src-2e2917c9acc57a1c71399fc4d0b46cd109ad7837.tar.gz
chromium_src-2e2917c9acc57a1c71399fc4d0b46cd109ad7837.tar.bz2
Let sequence-checking work from a SequencedWorkerPool task's destructor
BUG=165590 Review URL: https://codereview.chromium.org/11682008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@181594 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/threading')
-rw-r--r--base/threading/sequenced_worker_pool.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/base/threading/sequenced_worker_pool.cc b/base/threading/sequenced_worker_pool.cc
index 5b73618..1ceb948 100644
--- a/base/threading/sequenced_worker_pool.cc
+++ b/base/threading/sequenced_worker_pool.cc
@@ -709,12 +709,15 @@ void SequencedWorkerPool::Inner::ThreadLoop(Worker* this_worker) {
tracked_objects::ThreadData::TallyRunOnNamedThreadIfTracking(task,
start_time, tracked_objects::ThreadData::NowForEndOfRun());
+ // Make sure our task is erased outside the lock for the
+ // same reason we do this with delete_these_oustide_lock.
+ // Also, do it before calling set_running_task_info() so
+ // that sequence-checking from within the task's destructor
+ // still works.
+ task.task = Closure();
+
this_worker->set_running_task_info(
SequenceToken(), CONTINUE_ON_SHUTDOWN);
-
- // Make sure our task is erased outside the lock for the same reason
- // we do this with delete_these_oustide_lock.
- task.task = Closure();
}
DidRunWorkerTask(task); // Must be done inside the lock.
} else {