Loading flags/misc.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -220,3 +220,13 @@ flag { } } # OWNER=jackyu TARGET=25Q2 flag { name: "power_down_race_fix" namespace: "telephony" description: "Fixed race condition while powering down" bug:"378616116" metadata { purpose: PURPOSE_BUGFIX } } src/java/com/android/internal/telephony/GsmCdmaPhone.java +9 −2 Original line number Diff line number Diff line Loading @@ -1893,9 +1893,16 @@ public class GsmCdmaPhone extends Phone { @Override public void setRadioPowerForReason(boolean power, boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall, boolean forceApply, int reason) { if (mFeatureFlags.powerDownRaceFix()) { // setRadioPowerForReason can be called by the binder thread. We need to move that into // the main thread to prevent race condition. post(() -> mSST.setRadioPowerForReason(power, forEmergencyCall, isSelectedPhoneForEmergencyCall, forceApply, reason)); } else { mSST.setRadioPowerForReason(power, forEmergencyCall, isSelectedPhoneForEmergencyCall, forceApply, reason); } } @Override public Set<Integer> getRadioPowerOffReasons() { Loading Loading
flags/misc.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -220,3 +220,13 @@ flag { } } # OWNER=jackyu TARGET=25Q2 flag { name: "power_down_race_fix" namespace: "telephony" description: "Fixed race condition while powering down" bug:"378616116" metadata { purpose: PURPOSE_BUGFIX } }
src/java/com/android/internal/telephony/GsmCdmaPhone.java +9 −2 Original line number Diff line number Diff line Loading @@ -1893,9 +1893,16 @@ public class GsmCdmaPhone extends Phone { @Override public void setRadioPowerForReason(boolean power, boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall, boolean forceApply, int reason) { if (mFeatureFlags.powerDownRaceFix()) { // setRadioPowerForReason can be called by the binder thread. We need to move that into // the main thread to prevent race condition. post(() -> mSST.setRadioPowerForReason(power, forEmergencyCall, isSelectedPhoneForEmergencyCall, forceApply, reason)); } else { mSST.setRadioPowerForReason(power, forEmergencyCall, isSelectedPhoneForEmergencyCall, forceApply, reason); } } @Override public Set<Integer> getRadioPowerOffReasons() { Loading