JoinForTesting() in ScopedAsyncTaskScheduler.

TaskSchedulerImpl can't be destroyed without being joined first.

BUG=553459

Review-Url: https://codereview.chromium.org/2628533003
Cr-Commit-Position: refs/heads/master@{#442653}
diff --git a/base/test/scoped_async_task_scheduler.cc b/base/test/scoped_async_task_scheduler.cc
index 824b07fb..dcc5c15 100644
--- a/base/test/scoped_async_task_scheduler.cc
+++ b/base/test/scoped_async_task_scheduler.cc
@@ -10,6 +10,7 @@
 #include "base/logging.h"
 #include "base/task_scheduler/scheduler_worker_pool_params.h"
 #include "base/task_scheduler/task_scheduler.h"
+#include "base/task_scheduler/task_scheduler_impl.h"
 
 namespace base {
 namespace test {
@@ -32,6 +33,8 @@
 ScopedAsyncTaskScheduler::~ScopedAsyncTaskScheduler() {
   DCHECK_EQ(TaskScheduler::GetInstance(), task_scheduler_);
   TaskScheduler::GetInstance()->Shutdown();
+  static_cast<internal::TaskSchedulerImpl*>(TaskScheduler::GetInstance())
+      ->JoinForTesting();
   TaskScheduler::SetInstance(nullptr);
 }