void addMonitor(final StabilityMonitor stabilityMonitor) { assert !holdsLock(this); synchronized (this) { if (monitors.add(stabilityMonitor) && !isStableRestState()) { stabilityMonitor.incrementUnstableServices(); if (state == Substate.START_FAILED) { stabilityMonitor.addFailed(this); } else if (state == Substate.PROBLEM) { stabilityMonitor.addProblem(this); } } } }
void addMonitor(final StabilityMonitor stabilityMonitor) { assert !holdsLock(this); synchronized (this) { if (monitors.add(stabilityMonitor) && !isStableRestState()) { stabilityMonitor.incrementUnstableServices(); if (state == Substate.START_FAILED) { stabilityMonitor.addFailed(this); } else if (state == Substate.PROBLEM) { stabilityMonitor.addProblem(this); } } } }
private void updateStabilityState(final boolean leavingStableRestState) { assert holdsLock(this); final boolean enteringStableRestState = state.isRestState() && asyncTasks == 0; if (leavingStableRestState) { if (!enteringStableRestState) { container.incrementUnstableServices(); for (StabilityMonitor monitor : monitors) { monitor.incrementUnstableServices(); } } } else { if (enteringStableRestState) { container.decrementUnstableServices(); for (StabilityMonitor monitor : monitors) { monitor.decrementUnstableServices(); } if (shutdownListener != null && state == Substate.REMOVED) { shutdownListener.controllerDied(); shutdownListener = null; } } } }
private void updateStabilityState(final boolean leavingStableRestState) { assert holdsLock(this); final boolean enteringStableRestState = state.isRestState() && asyncTasks == 0; if (leavingStableRestState) { if (!enteringStableRestState) { container.incrementUnstableServices(); for (StabilityMonitor monitor : monitors) { monitor.incrementUnstableServices(); } } } else { if (enteringStableRestState) { container.decrementUnstableServices(); for (StabilityMonitor monitor : monitors) { monitor.decrementUnstableServices(); } if (shutdownListener != null && state == Substate.REMOVED) { shutdownListener.controllerDied(); shutdownListener = null; } } } }