aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRicardo Cerqueira <ricardo@cyngn.com>2014-09-05 12:48:49 +0100
committerRicardo Cerqueira <cyanogenmod@cerqueira.org>2014-09-12 22:03:33 +0100
commit2a243bbdc04ab3b83f6b91ca391ad99a63eaa828 (patch)
tree8c3eed89ec38bb486632c827994e70e16e3f73d2
parent0e5516827eb85dbef738f1fc8611751d1fef4bc1 (diff)
downloadandroid_frameworks_opt_telephony-2a243bbdc04ab3b83f6b91ca391ad99a63eaa828.tar.gz
android_frameworks_opt_telephony-2a243bbdc04ab3b83f6b91ca391ad99a63eaa828.tar.bz2
android_frameworks_opt_telephony-2a243bbdc04ab3b83f6b91ca391ad99a63eaa828.zip
DcTracker: Expedite data stall recovery
The current stall recovery process has a pending packet queue which needs to fill up before a stall is determined. But that process is also multi-step, and it is currently expecting that queue to fill between steps. Waiting for the unacknowledged packets to grow after running the connection cleanup step looks like something that would never happen, or would take a very long time to, so expedite the stall recovery after it begins: if any single packet stalls and there's already a recovery in progress, run the follow up step immediately. Change-Id: Ib16b2c47b5c832a812c8bd2a3d940862741ed9db
-rw-r--r--src/java/com/android/internal/telephony/dataconnection/DcTrackerBase.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcTrackerBase.java b/src/java/com/android/internal/telephony/dataconnection/DcTrackerBase.java
index 029044c88..4217db988 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcTrackerBase.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcTrackerBase.java
@@ -1668,7 +1668,8 @@ public abstract class DcTrackerBase extends Handler {
NUMBER_SENT_PACKETS_OF_HANG);
boolean suspectedStall = DATA_STALL_NOT_SUSPECTED;
- if (mSentSinceLastRecv >= hangWatchdogTrigger) {
+ if (mSentSinceLastRecv >= hangWatchdogTrigger ||
+ (mSentSinceLastRecv > 0 && getRecoveryAction() != RecoveryAction.GET_DATA_CALL_LIST) ) {
if (DBG) {
log("onDataStallAlarm: tag=" + tag + " do recovery action=" + getRecoveryAction());
}