Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 12161f13 authored by Malcolm Chen's avatar Malcolm Chen
Browse files

Don't hold mDataEnabledSettings lock if not needed.

Since most public APIs in mDataEnabledSettings are synchronized
methods, we don't need to lock mDataEnabledSettings explicitly.
We also shouldn't lock it when no longer needed, which could lead
to deadlock.

Bug: 71517029
Test: regression test
Change-Id: I0f3f51af94e48b4d31f703f444102f53fd466758
Merged-In: I0f3f51af94e48b4d31f703f444102f53fd466758
parent e44a7285
Loading
Loading
Loading
Loading
+59 −67
Original line number Diff line number Diff line
@@ -771,7 +771,6 @@ public class DcTracker extends Handler {
    }

    private void onSetUserDataEnabled(boolean enabled) {
        synchronized (mDataEnabledSettings) {
        if (mDataEnabledSettings.isUserDataEnabled() != enabled) {
            mDataEnabledSettings.setUserDataEnabled(enabled);
            if (!getDataRoamingEnabled() && mPhone.getServiceState().getDataRoaming()) {
@@ -794,7 +793,6 @@ public class DcTracker extends Handler {
            }
        }
    }
    }

    /**
     * Reevaluate existing data connections when conditions change.
@@ -2275,7 +2273,6 @@ public class DcTracker extends Handler {
            Rlog.e(LOG_TAG, "CarrierDataEnable exception: " + ar.exception);
            return;
        }
        synchronized (mDataEnabledSettings) {
        boolean enabled = (boolean) ar.result;
        if (enabled != mDataEnabledSettings.isCarrierDataEnabled()) {
            if (DBG) {
@@ -2300,7 +2297,6 @@ public class DcTracker extends Handler {
            }
        }
    }
    }

    private void onSimNotReady() {
        if (DBG) log("onSimNotReady");
@@ -2338,7 +2334,6 @@ public class DcTracker extends Handler {
    }

    private void onSetPolicyDataEnabled(boolean enabled) {
        synchronized (mDataEnabledSettings) {
        final boolean prevEnabled = isDataEnabled();
        if (mDataEnabledSettings.isPolicyDataEnabled() != enabled) {
            mDataEnabledSettings.setPolicyDataEnabled(enabled);
@@ -2354,7 +2349,6 @@ public class DcTracker extends Handler {
            }
        }
    }
    }

    private void applyNewState(ApnContext apnContext, boolean enabled, boolean met) {
        boolean cleanup = false;
@@ -4063,7 +4057,6 @@ public class DcTracker extends Handler {
    }

    private void onSetInternalDataEnabled(boolean enabled, Message onCompleteMsg) {
        synchronized (mDataEnabledSettings) {
        if (DBG) log("onSetInternalDataEnabled: enabled=" + enabled);
        boolean sendOnComplete = true;

@@ -4083,7 +4076,6 @@ public class DcTracker extends Handler {
            }
        }
    }
    }

    public boolean setInternalDataEnabled(boolean enable) {
        return setInternalDataEnabled(enable, null);