diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-03-05 22:05:23 +0100 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2014-03-05 22:05:57 +0100 |
| commit | 795e0345f3f46b40996f7ae937bea46ebe3d376e (patch) | |
| tree | d97a36c334175bf59347b6ce3ba96eef9d6bbe5b /main/src | |
| parent | 4d85283d27508752ee8e7dca387ec3f55470b18f (diff) | |
| download | cgeo-795e0345f3f46b40996f7ae937bea46ebe3d376e.zip cgeo-795e0345f3f46b40996f7ae937bea46ebe3d376e.tar.gz cgeo-795e0345f3f46b40996f7ae937bea46ebe3d376e.tar.bz2 | |
Avoid synchronization if not needed
Diffstat (limited to 'main/src')
| -rw-r--r-- | main/src/cgeo/geocaching/DataStore.java | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/main/src/cgeo/geocaching/DataStore.java b/main/src/cgeo/geocaching/DataStore.java index 5cc77dc..f4d2126 100644 --- a/main/src/cgeo/geocaching/DataStore.java +++ b/main/src/cgeo/geocaching/DataStore.java @@ -294,18 +294,22 @@ public class DataStore { private static boolean newlyCreatedDatabase = false; private static boolean databaseCleaned = false; - public synchronized static void init() { + public static void init() { if (database != null) { return; } - final DbHelper dbHelper = new DbHelper(new DBContext(CgeoApplication.getInstance())); - try { - database = dbHelper.getWritableDatabase(); - } catch (Exception e) { - Log.e("DataStore.init: unable to open database for R/W", e); - recreateDatabase(dbHelper); - + synchronized(DataStore.class) { + if (database != null) { + return; + } + final DbHelper dbHelper = new DbHelper(new DBContext(CgeoApplication.getInstance())); + try { + database = dbHelper.getWritableDatabase(); + } catch (Exception e) { + Log.e("DataStore.init: unable to open database for R/W", e); + recreateDatabase(dbHelper); + } } } |
