| Index: components/autofill/browser/personal_data_manager_unittest.cc
|
| diff --git a/components/autofill/browser/personal_data_manager_unittest.cc b/components/autofill/browser/personal_data_manager_unittest.cc
|
| index be28dc545ae864d0ae8f0d6a2270544e6e3e673a..80930282e0bf003f927353a34007c848f3814051 100644
|
| --- a/components/autofill/browser/personal_data_manager_unittest.cc
|
| +++ b/components/autofill/browser/personal_data_manager_unittest.cc
|
| @@ -8,6 +8,7 @@
|
| #include "base/guid.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/message_loop.h"
|
| +#include "base/synchronization/waitable_event.h"
|
| #include "base/utf_string_conversions.h"
|
| #include "chrome/browser/password_manager/encryptor.h"
|
| #include "chrome/browser/webdata/web_data_service.h"
|
| @@ -79,9 +80,15 @@ class PersonalDataManagerTest : public testing::Test {
|
| personal_data_.reset(NULL);
|
| profile_.reset(NULL);
|
|
|
| - db_thread_.Stop();
|
| + // Schedule another task on the DB thread to notify us that it's safe to
|
| + // stop the thread.
|
| + base::WaitableEvent done(false, false);
|
| + BrowserThread::PostTask(BrowserThread::DB, FROM_HERE,
|
| + base::Bind(&base::WaitableEvent::Signal, base::Unretained(&done)));
|
| + done.Wait();
|
| MessageLoop::current()->PostTask(FROM_HERE, MessageLoop::QuitClosure());
|
| MessageLoop::current()->Run();
|
| + db_thread_.Stop();
|
| }
|
|
|
| void ResetPersonalDataManager() {
|
|
|