Commits

Christopher Wiley authored d985dde8ccf
Fix race conditions between Tethering and TetherInterfaceStateMachine ( cherry-pick of de4819dc82b734036b22416228327d2712e01884 ) 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