Chromium Code Reviews| Index: android_webview/java/src/org/chromium/android_webview/HttpAuthDatabase.java |
| diff --git a/android_webview/java/src/org/chromium/android_webview/HttpAuthDatabase.java b/android_webview/java/src/org/chromium/android_webview/HttpAuthDatabase.java |
| index 6e65e060a7033ecacafdebf90f8060e191e987fe..ad28a732c2c31842eae40a17249fee370bdfe584 100644 |
| --- a/android_webview/java/src/org/chromium/android_webview/HttpAuthDatabase.java |
| +++ b/android_webview/java/src/org/chromium/android_webview/HttpAuthDatabase.java |
| @@ -52,6 +52,8 @@ public class HttpAuthDatabase { |
| */ |
| private boolean mInitialized = false; |
| + private final Object mInitializedLock = new Object(); |
| + |
| /** |
| * Create an instance of HttpAuthDatabase for the named file, and kick-off background |
| * initialization of that database. |
| @@ -74,16 +76,18 @@ public class HttpAuthDatabase { |
| * @param context the Context to use for opening the database |
| * @param databaseFile Name of the file to be initialized. |
| */ |
| - private synchronized void initOnBackgroundThread(Context context, String databaseFile) { |
| - if (mInitialized) { |
| - return; |
| - } |
| + private void initOnBackgroundThread(Context context, String databaseFile) { |
| + synchronized (mInitializedLock) { |
| + if (mInitialized) { |
| + return; |
| + } |
| - initDatabase(context, databaseFile); |
| + initDatabase(context, databaseFile); |
| - // Thread done, notify. |
| - mInitialized = true; |
| - notifyAll(); |
| + // Thread done, notify. |
| + mInitialized = true; |
| + notifyAll(); |
| + } |
| } |
| /** |
| @@ -138,7 +142,7 @@ public class HttpAuthDatabase { |
| * @return true if the database was initialized, false otherwise |
| */ |
| private boolean waitForInit() { |
| - synchronized (this) { |
| + synchronized (mInitializedLock) { |
| while (!mInitialized) { |
| try { |
| wait(); |
|
boliu
2014/02/04 23:26:25
This needs to be mInitializedLock.wait() I think.
Lei Zhang
2014/02/05 00:50:42
Thanks. Done.
|