summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBretty White <geekman3454@protonmail.com>2018-07-12 16:28:52 -0400
committerBretty White <geekman3454@protonmail.com>2018-07-12 16:28:52 -0400
commitb5573a9ae7ef7adb5489a6b4f1714afd95b7ac61 (patch)
tree2e6add6249be711a89b801bc0858a41669c7fe05
parente3b4e9eb7e65c0bc71bacd826d7aae094655990e (diff)
downloadsdl_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.java19
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;
+ }
}
}