changeActiveCounter method
void
changeActiveCounter(
- int change
)
Implementation
void changeActiveCounter(int change) {
int previousActiveCount = activeCount;
activeCount += change;
if (changingActiveState) {
return;
}
changingActiveState = true;
try {
while (previousActiveCount != activeCount) {
bool needToCallActive = previousActiveCount == 0 && activeCount > 0;
bool needToCallInactive = previousActiveCount > 0 && activeCount == 0;
previousActiveCount = activeCount;
if (needToCallActive) {
onActive();
} else if (needToCallInactive) {
onInactive();
}
}
} finally {
changingActiveState = false;
}
}