Commit 6044a51d authored by fdoray's avatar fdoray Committed by Commit bot

Flush TaskScheduler in ~ScopedTaskEnvironment and ~ScopedAsyncTaskScheduler.

Skipping tasks when destroying ScopedTaskEnvironment or
ScopedAsyncTaskScheduler means that DeleteSoon() tasks
can be skipped, resulting in memory leaks.

BUG=708584, 709095

Review-Url: https://codereview.chromium.org/2812293002
Cr-Commit-Position: refs/heads/master@{#464380}
parent d6c28d85
...@@ -29,6 +29,9 @@ ScopedAsyncTaskScheduler::ScopedAsyncTaskScheduler() { ...@@ -29,6 +29,9 @@ ScopedAsyncTaskScheduler::ScopedAsyncTaskScheduler() {
ScopedAsyncTaskScheduler::~ScopedAsyncTaskScheduler() { ScopedAsyncTaskScheduler::~ScopedAsyncTaskScheduler() {
DCHECK_EQ(TaskScheduler::GetInstance(), task_scheduler_); DCHECK_EQ(TaskScheduler::GetInstance(), task_scheduler_);
// Without FlushForTesting(), DeleteSoon() and ReleaseSoon() tasks could be
// skipped, resulting in memory leaks.
TaskScheduler::GetInstance()->FlushForTesting();
TaskScheduler::GetInstance()->Shutdown(); TaskScheduler::GetInstance()->Shutdown();
TaskScheduler::GetInstance()->JoinForTesting(); TaskScheduler::GetInstance()->JoinForTesting();
TaskScheduler::SetInstance(nullptr); TaskScheduler::SetInstance(nullptr);
......
...@@ -32,6 +32,9 @@ ScopedTaskEnvironment::~ScopedTaskEnvironment() { ...@@ -32,6 +32,9 @@ ScopedTaskEnvironment::~ScopedTaskEnvironment() {
RunLoop().RunUntilIdle(); RunLoop().RunUntilIdle();
DCHECK_EQ(TaskScheduler::GetInstance(), task_scheduler_); DCHECK_EQ(TaskScheduler::GetInstance(), task_scheduler_);
// Without FlushForTesting(), DeleteSoon() and ReleaseSoon() tasks could be
// skipped, resulting in memory leaks.
TaskScheduler::GetInstance()->FlushForTesting();
TaskScheduler::GetInstance()->Shutdown(); TaskScheduler::GetInstance()->Shutdown();
TaskScheduler::GetInstance()->JoinForTesting(); TaskScheduler::GetInstance()->JoinForTesting();
TaskScheduler::SetInstance(nullptr); TaskScheduler::SetInstance(nullptr);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment