Index: base/test/sequenced_worker_pool_owner.cc |
diff --git a/base/test/sequenced_worker_pool_owner.cc b/base/test/sequenced_worker_pool_owner.cc |
index b0d8b7a1adb084d0fcd78c037acfacd91c643944..37bad2b29d25c5e5084cd9e6c69ec87da416d45a 100644 |
--- a/base/test/sequenced_worker_pool_owner.cc |
+++ b/base/test/sequenced_worker_pool_owner.cc |
@@ -18,8 +18,11 @@ SequencedWorkerPoolOwner::SequencedWorkerPoolOwner( |
has_work_call_count_(0) {} |
SequencedWorkerPoolOwner::~SequencedWorkerPoolOwner() { |
+ pool_->Shutdown(); |
pool_ = NULL; |
- MessageLoop::current()->Run(); |
+ |
+ // Spin the current message loop until SWP destruction verified in OnDestruct. |
+ exit_loop_.Run(); |
} |
const scoped_refptr<SequencedWorkerPool>& SequencedWorkerPoolOwner::pool() { |
@@ -51,8 +54,7 @@ void SequencedWorkerPoolOwner::WillWaitForShutdown() { |
} |
void SequencedWorkerPoolOwner::OnDestruct() { |
- constructor_message_loop_->task_runner()->PostTask( |
- FROM_HERE, constructor_message_loop_->QuitWhenIdleClosure()); |
+ constructor_message_loop_->PostTask(FROM_HERE, exit_loop_.QuitClosure()); |
} |
} // namespace base |