diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-03-10 14:40:03 +0100 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2014-03-10 14:40:03 +0100 |
| commit | 4ed6d0cc7c6b8be97c69fd4061f431442715b3b1 (patch) | |
| tree | 6b89382d0a51d3dc58330744a3e5ec7c17304a0d /main/src | |
| parent | ca91d0da3bf84a8c827412cbde9dbdc823b2d7c9 (diff) | |
| download | cgeo-4ed6d0cc7c6b8be97c69fd4061f431442715b3b1.zip cgeo-4ed6d0cc7c6b8be97c69fd4061f431442715b3b1.tar.gz cgeo-4ed6d0cc7c6b8be97c69fd4061f431442715b3b1.tar.bz2 | |
Use basic synchronization on infrequent access pattern
Diffstat (limited to 'main/src')
| -rw-r--r-- | main/src/cgeo/geocaching/CgeoApplication.java | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/main/src/cgeo/geocaching/CgeoApplication.java b/main/src/cgeo/geocaching/CgeoApplication.java index d34b70b..bb74b52 100644 --- a/main/src/cgeo/geocaching/CgeoApplication.java +++ b/main/src/cgeo/geocaching/CgeoApplication.java @@ -70,18 +70,14 @@ public class CgeoApplication extends Application { }.start(); } - public Observable<ImmutablePair<IGeoData, Float>> geoDirObservable() { + public synchronized Observable<ImmutablePair<IGeoData, Float>> geoDirObservable() { if (geoDir == null) { - synchronized(this) { - if (geoDir == null) { - geoDir = Observable.combineLatest(GeoDataProvider.create(this), DirectionProvider.create(this), new Func2<IGeoData, Float, ImmutablePair<IGeoData, Float>>() { - @Override - public ImmutablePair<IGeoData, Float> call(final IGeoData geoData, final Float dir) { - return new ImmutablePair<IGeoData, Float>(geoData, dir); - } - }); + geoDir = Observable.combineLatest(GeoDataProvider.create(this), DirectionProvider.create(this), new Func2<IGeoData, Float, ImmutablePair<IGeoData, Float>>() { + @Override + public ImmutablePair<IGeoData, Float> call(final IGeoData geoData, final Float dir) { + return new ImmutablePair<IGeoData, Float>(geoData, dir); } - } + }); } return geoDir; } |
