* commit 'db45e0bdd02c2b9416b89999422561929feb5cc0': Release wakelock after use
This commit is contained in:
@ -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) {
|
||||||
|
Reference in New Issue
Block a user