Fix race conditions between Tethering and TetherInterfaceStateMachine
Previously, Tethering would answer requests for current tethering state by calling methods on instances of TetherInterfaceStateMachine to build up that state. This is incorrect, since state queries can come in on an arbitrary thread, independent of updates to the state machines instances. Fix this by: - Altering TetherInterfaceStateMachine to push consistent state snapshots to Tethering via notifyInterfaceStateChange() - Storing the last state snapshot in Tethering.mTetherStates - Removing public methods to query TetherInterfaceStateMachine state. - Consistently synchronizing access to Tethering.mTetherStates Bug: 29009601 Test: WiFi Tethering continues to work, unittests continue to pass Change-Id: Ied334f5e8739bc3aff1b08a1079095b9cc2a7958
Loading
Please register or sign in to comment