summaryrefslogtreecommitdiffstats
path: root/content/renderer/scheduler
diff options
context:
space:
mode:
authoralexclarke <alexclarke@chromium.org>2015-04-01 03:33:01 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-01 10:34:04 +0000
commit42c0d7d626b8dacaf1fb8730955f0c70d9102e65 (patch)
treefb400c1fe71861fb0a18bd5f75fd9b18bf6c03b0 /content/renderer/scheduler
parent852991e304eed0f1fb8271c794501d0cbd65d0c6 (diff)
downloadchromium_src-42c0d7d626b8dacaf1fb8730955f0c70d9102e65.zip
chromium_src-42c0d7d626b8dacaf1fb8730955f0c70d9102e65.tar.gz
chromium_src-42c0d7d626b8dacaf1fb8730955f0c70d9102e65.tar.bz2
Change TaskQueue::WillDeleteTaskQueueManager to clear all queues
This is needed by https://codereview.chromium.org/1025323003/# but it's potentially risky so it would be good to do it seperatly. BUG=463143, 468308 Review URL: https://codereview.chromium.org/1055473002 Cr-Commit-Position: refs/heads/master@{#323209}
Diffstat (limited to 'content/renderer/scheduler')
-rw-r--r--content/renderer/scheduler/task_queue_manager.cc3
-rw-r--r--content/renderer/scheduler/task_queue_manager_unittest.cc4
2 files changed, 5 insertions, 2 deletions
diff --git a/content/renderer/scheduler/task_queue_manager.cc b/content/renderer/scheduler/task_queue_manager.cc
index 60ae565..a9a75a6 100644
--- a/content/renderer/scheduler/task_queue_manager.cc
+++ b/content/renderer/scheduler/task_queue_manager.cc
@@ -154,8 +154,9 @@ TaskQueue::~TaskQueue() {
void TaskQueue::WillDeleteTaskQueueManager() {
base::AutoLock lock(lock_);
task_queue_manager_ = nullptr;
- // TODO(scheduler-dev): Should we also clear the other queues here too?
delayed_task_queue_ = base::DelayedTaskQueue();
+ incoming_queue_ = base::TaskQueue();
+ work_queue_ = base::TaskQueue();
}
bool TaskQueue::RunsTasksOnCurrentThread() const {
diff --git a/content/renderer/scheduler/task_queue_manager_unittest.cc b/content/renderer/scheduler/task_queue_manager_unittest.cc
index 533223e..34fa200 100644
--- a/content/renderer/scheduler/task_queue_manager_unittest.cc
+++ b/content/renderer/scheduler/task_queue_manager_unittest.cc
@@ -442,10 +442,12 @@ TEST_F(TaskQueueManagerTest, PendingDelayedTasksRemovedOnShutdown) {
runner->PostDelayedTask(
FROM_HERE, base::Bind(&TestObject::Run, base::Owned(new TestObject())),
delay);
+ runner->PostTask(
+ FROM_HERE, base::Bind(&TestObject::Run, base::Owned(new TestObject())));
manager_.reset();
- EXPECT_EQ(1, TestObject::destructor_count_);
+ EXPECT_EQ(2, TestObject::destructor_count_);
}
TEST_F(TaskQueueManagerTest, ManualPumping) {