Synchronize on all sendProxyBroadcast calls

To avoid race conditions.  Also make mDefaultProxy volatile for
safety.

Bug: 17697364
Change-Id: I8f0abb1a6e1c816f3addc11a69ff794ad767f2cf
This commit is contained in:
Jason Monk
2014-10-02 15:39:38 -04:00
parent ae6c5079a5
commit e3a7ae6118

View File

@@ -403,7 +403,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
private ArrayList mInetLog;
// track the current default http proxy - tell the world if we get a new one (real change)
private ProxyInfo mDefaultProxy = null;
private volatile ProxyInfo mDefaultProxy = null;
private Object mProxyLock = new Object();
private boolean mDefaultProxyDisabled = false;
@@ -2537,12 +2537,12 @@ public class ConnectivityService extends IConnectivityManager.Stub {
} finally {
Binder.restoreCallingIdentity(token);
}
}
if (mGlobalProxy == null) {
proxyProperties = mDefaultProxy;
if (mGlobalProxy == null) {
proxyProperties = mDefaultProxy;
}
sendProxyBroadcast(proxyProperties);
}
sendProxyBroadcast(proxyProperties);
}
private void loadGlobalProxy() {