diff options
author | Bretty White <geekman3454@protonmail.com> | 2018-07-12 16:28:52 -0400 |
---|---|---|
committer | Bretty White <geekman3454@protonmail.com> | 2018-07-12 16:28:52 -0400 |
commit | b5573a9ae7ef7adb5489a6b4f1714afd95b7ac61 (patch) | |
tree | 2e6add6249be711a89b801bc0858a41669c7fe05 | |
parent | e3b4e9eb7e65c0bc71bacd826d7aae094655990e (diff) | |
download | sdl_android-b5573a9ae7ef7adb5489a6b4f1714afd95b7ac61.tar.gz |
addressing states and locks in basesubmanager according to comment
-rw-r--r-- | sdl_android/src/main/java/com/smartdevicelink/api/BaseSubManager.java | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/sdl_android/src/main/java/com/smartdevicelink/api/BaseSubManager.java b/sdl_android/src/main/java/com/smartdevicelink/api/BaseSubManager.java index 0096621e0..ac7e020f9 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/api/BaseSubManager.java +++ b/sdl_android/src/main/java/com/smartdevicelink/api/BaseSubManager.java @@ -16,27 +16,32 @@ import com.smartdevicelink.proxy.interfaces.ISdl; public abstract class BaseSubManager { // states - if this gets more complicated we can move elsewhere - public int state, SETTING_UP = 0x00, READY = 0x30, SHUTDOWN = 0x60; - + private int state; + private final Object STATE_LOCK = new Object(); + public static final int SETTING_UP = 0x00, READY = 0x30, SHUTDOWN = 0x60; protected final ISdl internalInterface; public BaseSubManager(@NonNull ISdl internalInterface){ this.internalInterface = internalInterface; - this.state = SETTING_UP; + transitionToState(SETTING_UP); } /** * <p>Called when manager is being torn down</p> */ public void dispose(){ - this.state = SHUTDOWN; + transitionToState(SHUTDOWN); } protected void transitionToState(int state) { - this.state = state; + synchronized (STATE_LOCK) { + this.state = state; + } } - protected int getState() { - return state; + public int getState() { + synchronized (STATE_LOCK) { + return state; + } } } |