OSDN Git Service

Add a time margin for deferred enable.
authorRobert Greenwalt <rgreenwalt@google.com>
Mon, 20 May 2013 18:49:46 +0000 (11:49 -0700)
committerRobert Greenwalt <rgreenwalt@google.com>
Mon, 20 May 2013 18:49:46 +0000 (11:49 -0700)
We were getting delayed message delivered 1 ms before we expected.
bug:9014777

Change-Id: I70e681ff6b4155d31097b43529478b39c816e70b

services/java/com/android/server/wifi/WifiController.java

index 8e2bdaa..228fabf 100644 (file)
@@ -78,6 +78,10 @@ class WifiController extends StateMachine {
      */
     private static final long DEFAULT_REENABLE_DELAY_MS = 500;
 
+    // finding that delayed messages can sometimes be delivered earlier than expected
+    // probably rounding errors..  add a margin to prevent problems
+    private static final long DEFER_MARGIN_MS = 5;
+
     NetworkInfo mNetworkInfo = new NetworkInfo(ConnectivityManager.TYPE_WIFI, 0, "WIFI", "");
 
     private static final String ACTION_DEVICE_IDLE =
@@ -437,7 +441,7 @@ class WifiController extends StateMachine {
             Message deferredMsg = obtainMessage(CMD_DEFERRED_TOGGLE);
             deferredMsg.obj = Message.obtain(msg);
             deferredMsg.arg1 = ++mDeferredEnableSerialNumber;
-            sendMessageDelayed(deferredMsg, mReEnableDelayMillis - delaySoFar);
+            sendMessageDelayed(deferredMsg, mReEnableDelayMillis - delaySoFar + DEFER_MARGIN_MS);
             return true;
         }
 
@@ -561,7 +565,7 @@ class WifiController extends StateMachine {
             Message deferredMsg = obtainMessage(CMD_DEFERRED_TOGGLE);
             deferredMsg.obj = Message.obtain(msg);
             deferredMsg.arg1 = ++mDeferredEnableSerialNumber;
-            sendMessageDelayed(deferredMsg, mReEnableDelayMillis - delaySoFar);
+            sendMessageDelayed(deferredMsg, mReEnableDelayMillis - delaySoFar + DEFER_MARGIN_MS);
             return true;
         }