From: Robert Greenwalt Date: Fri, 4 Sep 2015 00:09:26 +0000 (-0700) Subject: Let some messages get processed in emergency state X-Git-Url: https://nv-tegra.nvidia.com/r/gitweb?p=android%2Fplatform%2Fframeworks%2Fopt%2Ftelephony.git;a=commitdiff_plain;h=082f02d3d9a865510db6c67162d302772559a93e Let some messages get processed in emergency state Some pings and infrastructure events were getting defered in emergency mode. This led to hung processes. bug:24097705 Change-Id: I5415ae69bcf17a293d5af9ae093d7346b1dc076f --- diff --git a/src/java/com/android/internal/telephony/dataconnection/DcSwitchStateMachine.java b/src/java/com/android/internal/telephony/dataconnection/DcSwitchStateMachine.java index 68d3f500..ae2d2ff6 100644 --- a/src/java/com/android/internal/telephony/dataconnection/DcSwitchStateMachine.java +++ b/src/java/com/android/internal/telephony/dataconnection/DcSwitchStateMachine.java @@ -170,11 +170,25 @@ public class DcSwitchStateMachine extends StateMachine { break; } - default: { + // explicitly call out the messages we must defer + // anything not listed falls through to the default state + case DcSwitchAsyncChannel.REQ_CONNECT: + case DcSwitchAsyncChannel.REQ_RETRY_CONNECT: + case DcSwitchAsyncChannel.REQ_DISCONNECT_ALL: + case DcSwitchAsyncChannel.EVENT_DATA_ATTACHED: + case DcSwitchAsyncChannel.EVENT_DATA_DETACHED: { log("EmergencyState: deferMessage msg.what=0x" + Integer.toHexString(msg.what)); deferMessage(msg); break; } + + default: { + if (VDBG) { + log("EmergencyState: nothandled msg.what=0x" + + Integer.toHexString(msg.what)); + } + return NOT_HANDLED; + } } return HANDLED;