From 4dee5fb135b11e155c81fc6defe6c57a583c5d81 Mon Sep 17 00:00:00 2001 From: Erik Kline Date: Wed, 9 May 2018 14:45:21 +0900 Subject: Also await IpClient's shutdown It may be best to await shutdown of IpClient, especially in cases where cleanup code would otherwise race with IP address assignment and other bringup code. Test: as follows - built - flashed - booted - frameworks/opt/net/wifi/tests/wifitests/runtests.sh passes Test: Unit test Test: Ran WifiManager ACTS tests locally. Bug: 79400794 Change-Id: I1a02d70660ec54fda9a36399b285cda054cde8d3 --- service/java/com/android/server/wifi/WifiStateMachine.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'service') diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java index bca20e43d..0b0210bee 100644 --- a/service/java/com/android/server/wifi/WifiStateMachine.java +++ b/service/java/com/android/server/wifi/WifiStateMachine.java @@ -3735,7 +3735,12 @@ public class WifiStateMachine extends StateMachine { mIsRunning = false; updateBatteryWorkSource(null); - if (mIpClient != null) mIpClient.shutdown(); + if (mIpClient != null) { + mIpClient.shutdown(); + // Block to make sure IpClient has really shut down, lest cleanup + // race with, say, bringup code over in tethering. + mIpClient.awaitShutdown(); + } mNetworkInfo.setIsAvailable(false); if (mNetworkAgent != null) mNetworkAgent.sendNetworkInfo(mNetworkInfo); mCountryCode.setReadyForChange(false); -- cgit v1.2.3