am db45e0bd: am ecce539f: Merge "Release wakelock after use" into honeycomb-mr2

* commit 'db45e0bdd02c2b9416b89999422561929feb5cc0':
  Release wakelock after use
This commit is contained in:
Irfan Sheriff
2011-06-22 11:21:12 -07:00
committed by Android Git Automerger

View File

@ -117,13 +117,14 @@ public class DhcpStateMachine extends StateMachine {
PowerManager powerManager = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE); PowerManager powerManager = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE);
mDhcpRenewWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, WAKELOCK_TAG); mDhcpRenewWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, WAKELOCK_TAG);
mDhcpRenewWakeLock.setReferenceCounted(false);
mBroadcastReceiver = new BroadcastReceiver() { mBroadcastReceiver = new BroadcastReceiver() {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
//DHCP renew //DHCP renew
if (DBG) Log.d(TAG, "Sending a DHCP renewal " + this); 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); mDhcpRenewWakeLock.acquire(40000);
sendMessage(CMD_RENEW_DHCP); sendMessage(CMD_RENEW_DHCP);
} }
@ -166,6 +167,7 @@ public class DhcpStateMachine extends StateMachine {
switch (message.what) { switch (message.what) {
case CMD_RENEW_DHCP: case CMD_RENEW_DHCP:
Log.e(TAG, "Error! Failed to handle a DHCP renewal on " + mInterfaceName); Log.e(TAG, "Error! Failed to handle a DHCP renewal on " + mInterfaceName);
mDhcpRenewWakeLock.release();
break; break;
case SM_QUIT_CMD: case SM_QUIT_CMD:
mContext.unregisterReceiver(mBroadcastReceiver); mContext.unregisterReceiver(mBroadcastReceiver);
@ -268,10 +270,12 @@ public class DhcpStateMachine extends StateMachine {
/* Notify controller before starting DHCP */ /* Notify controller before starting DHCP */
mController.sendMessage(CMD_PRE_DHCP_ACTION); mController.sendMessage(CMD_PRE_DHCP_ACTION);
transitionTo(mWaitBeforeRenewalState); transitionTo(mWaitBeforeRenewalState);
//mDhcpRenewWakeLock is released in WaitBeforeRenewalState
} else { } else {
if (!runDhcp(DhcpAction.RENEW)) { if (!runDhcp(DhcpAction.RENEW)) {
transitionTo(mStoppedState); transitionTo(mStoppedState);
} }
mDhcpRenewWakeLock.release();
} }
break; break;
case CMD_START_DHCP: case CMD_START_DHCP:
@ -318,6 +322,10 @@ public class DhcpStateMachine extends StateMachine {
} }
return retValue; return retValue;
} }
@Override
public void exit() {
mDhcpRenewWakeLock.release();
}
} }
private boolean runDhcp(DhcpAction dhcpAction) { private boolean runDhcp(DhcpAction dhcpAction) {