summaryrefslogtreecommitdiffstats
path: root/core/java/android/net/DhcpStateMachine.java
diff options
context:
space:
mode:
authorIrfan Sheriff <isheriff@google.com>2011-06-22 11:10:26 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2011-06-22 11:10:26 -0700
commitdb45e0bdd02c2b9416b89999422561929feb5cc0 (patch)
treec70db6c9053a7a11d5e0b413fbd5dc978d0b5cb6 /core/java/android/net/DhcpStateMachine.java
parent0310f4dad3b6ab8b050f6072050dc80374abafc2 (diff)
parentecce539f3d739fbf4b395639a485fddf51f688d6 (diff)
downloadframeworks_base-db45e0bdd02c2b9416b89999422561929feb5cc0.zip
frameworks_base-db45e0bdd02c2b9416b89999422561929feb5cc0.tar.gz
frameworks_base-db45e0bdd02c2b9416b89999422561929feb5cc0.tar.bz2
am ecce539f: Merge "Release wakelock after use" into honeycomb-mr2
* commit 'ecce539f3d739fbf4b395639a485fddf51f688d6': Release wakelock after use
Diffstat (limited to 'core/java/android/net/DhcpStateMachine.java')
-rw-r--r--core/java/android/net/DhcpStateMachine.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/core/java/android/net/DhcpStateMachine.java b/core/java/android/net/DhcpStateMachine.java
index c49c019..445b2f7 100644
--- a/core/java/android/net/DhcpStateMachine.java
+++ b/core/java/android/net/DhcpStateMachine.java
@@ -117,13 +117,14 @@ public class DhcpStateMachine extends StateMachine {
PowerManager powerManager = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE);
mDhcpRenewWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, WAKELOCK_TAG);
+ mDhcpRenewWakeLock.setReferenceCounted(false);
mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//DHCP renew
if (DBG) Log.d(TAG, "Sending a DHCP renewal " + this);
- //acquire a 40s wakelock to finish DHCP renewal
+ //Lock released after 40s in worst case scenario
mDhcpRenewWakeLock.acquire(40000);
sendMessage(CMD_RENEW_DHCP);
}
@@ -166,6 +167,7 @@ public class DhcpStateMachine extends StateMachine {
switch (message.what) {
case CMD_RENEW_DHCP:
Log.e(TAG, "Error! Failed to handle a DHCP renewal on " + mInterfaceName);
+ mDhcpRenewWakeLock.release();
break;
case SM_QUIT_CMD:
mContext.unregisterReceiver(mBroadcastReceiver);
@@ -268,10 +270,12 @@ public class DhcpStateMachine extends StateMachine {
/* Notify controller before starting DHCP */
mController.sendMessage(CMD_PRE_DHCP_ACTION);
transitionTo(mWaitBeforeRenewalState);
+ //mDhcpRenewWakeLock is released in WaitBeforeRenewalState
} else {
if (!runDhcp(DhcpAction.RENEW)) {
transitionTo(mStoppedState);
}
+ mDhcpRenewWakeLock.release();
}
break;
case CMD_START_DHCP:
@@ -318,6 +322,10 @@ public class DhcpStateMachine extends StateMachine {
}
return retValue;
}
+ @Override
+ public void exit() {
+ mDhcpRenewWakeLock.release();
+ }
}
private boolean runDhcp(DhcpAction dhcpAction) {