Make the DevTools Connectivity lock non reference counted.

To avoid a race on checking if the lock is held.

Change-Id: Iee836447ab0cf6586fa8ece570cc821cd7c6fcd4
This commit is contained in:
Evan Birenbaum
2016-05-25 10:17:44 -07:00
parent 1cf985bff6
commit a1770e75d0

View File

@@ -406,6 +406,7 @@ public class Connectivity extends Activity {
mWm = (WifiManager)getSystemService(Context.WIFI_SERVICE); mWm = (WifiManager)getSystemService(Context.WIFI_SERVICE);
mWml = mWm.createMulticastLock(TAG); mWml = mWm.createMulticastLock(TAG);
mWml.setReferenceCounted(false);
mPm = (PowerManager)getSystemService(Context.POWER_SERVICE); mPm = (PowerManager)getSystemService(Context.POWER_SERVICE);
mCm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); mCm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
IBinder b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE); IBinder b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE);
@@ -486,10 +487,8 @@ public class Connectivity extends Activity {
mCm.unregisterNetworkCallback(mCallback); mCm.unregisterNetworkCallback(mCallback);
mCallback = null; mCallback = null;
unregisterReceiver(mReceiver); unregisterReceiver(mReceiver);
if (mWml.isHeld()) {
mWml.release(); mWml.release();
} }
}
@Override @Override
public void onResume() { public void onResume() {