aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/DataStore.java
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-03-05 22:05:23 +0100
committerSamuel Tardieu <sam@rfc1149.net>2014-03-05 22:05:57 +0100
commit795e0345f3f46b40996f7ae937bea46ebe3d376e (patch)
treed97a36c334175bf59347b6ce3ba96eef9d6bbe5b /main/src/cgeo/geocaching/DataStore.java
parent4d85283d27508752ee8e7dca387ec3f55470b18f (diff)
downloadcgeo-795e0345f3f46b40996f7ae937bea46ebe3d376e.zip
cgeo-795e0345f3f46b40996f7ae937bea46ebe3d376e.tar.gz
cgeo-795e0345f3f46b40996f7ae937bea46ebe3d376e.tar.bz2
Avoid synchronization if not needed
Diffstat (limited to 'main/src/cgeo/geocaching/DataStore.java')
-rw-r--r--main/src/cgeo/geocaching/DataStore.java20
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);
+ }
}
}