private final void removeElementClient(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); // don't recalc time, just wake up as planned if(_inShutdown) { synchronized (this) { this.notifyAll(); // TODO: use different lock for shutdown? } } }
private final void removeElementClient(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); // don't recalc time, just wake up as planned if(_inShutdown) { synchronized (this) { this.notifyAll(); // TODO: use different lock for shutdown? } } }
private final void removeElementClient(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); // don't recalc time, just wake up as planned if(_inShutdown) { synchronized (this) { this.notifyAll(); // TODO: use different lock for shutdown? } } }
private final void removeElementClient(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); // don't recalc time, just wake up as planned if(_inShutdown) { synchronized (this) { this.notifyAll(); // TODO: use different lock for shutdown? } } }
private final void removeElementClient(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); // don't recalc time, just wake up as planned if(_inShutdown) { synchronized (this) { this.notifyAll(); // TODO: use different lock for shutdown? } } }
private final void removeElementClient(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); // don't recalc time, just wake up as planned if(_inShutdown) { synchronized (this) { this.notifyAll(); // TODO: use different lock for shutdown? } } }
private final void removeElementClient(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); // don't recalc time, just wake up as planned if(_inShutdown) { synchronized (this) { this.notifyAll(); // TODO: use different lock for shutdown? } } }
private final void removeElementClient(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); // don't recalc time, just wake up as planned if(_inShutdown) { synchronized (this) { this.notifyAll(); // TODO: use different lock for shutdown? } } }
private final void removeElementClient(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); // don't recalc time, just wake up as planned if(_inShutdown) { synchronized (this) { this.notifyAll(); // TODO: use different lock for shutdown? } } }
private final void removeElementClient(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); // don't recalc time, just wake up as planned if(_inShutdown) { synchronized (this) { this.notifyAll(); // TODO: use different lock for shutdown? } } }
private final void removeElementClient(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); // don't recalc time, just wake up as planned if(_inShutdown) { synchronized (this) { this.notifyAll(); // TODO: use different lock for shutdown? } } }
private final void removeElementReaper(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); synchronized (this) { // TODO set needs tobe atomic to getFirst? ReaperElement first = _reaperElements.getFirst(); if(first != null) { nextDynamicCheckTime.set(first.getAbsoluteTimeout()); } else { nextDynamicCheckTime.set(Long.MAX_VALUE); if(_inShutdown) { this.notifyAll(); // TODO: use different lock for shutdown? } } } }
private final void removeElementReaper(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); synchronized (this) { // TODO set needs tobe atomic to getFirst? ReaperElement first = _reaperElements.getFirst(); if(first != null) { nextDynamicCheckTime.set(first.getAbsoluteTimeout()); } else { nextDynamicCheckTime.set(Long.MAX_VALUE); if(_inShutdown) { this.notifyAll(); // TODO: use different lock for shutdown? } } } }
private final void removeElementReaper(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); synchronized (this) { // TODO set needs tobe atomic to getFirst? ReaperElement first = _reaperElements.getFirst(); if(first != null) { nextDynamicCheckTime.set(first.getAbsoluteTimeout()); } else { nextDynamicCheckTime.set(Long.MAX_VALUE); if(_inShutdown) { this.notifyAll(); // TODO: use different lock for shutdown? } } } }
private final void removeElementReaper(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); synchronized (this) { // TODO set needs tobe atomic to getFirst? ReaperElement first = _reaperElements.getFirst(); if(first != null) { nextDynamicCheckTime.set(first.getAbsoluteTimeout()); } else { nextDynamicCheckTime.set(Long.MAX_VALUE); if(_inShutdown) { this.notifyAll(); // TODO: use different lock for shutdown? } } } }
private final void removeElementReaper(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); synchronized (this) { // TODO set needs tobe atomic to getFirst? ReaperElement first = _reaperElements.getFirst(); if(first != null) { nextDynamicCheckTime.set(first.getAbsoluteTimeout()); } else { nextDynamicCheckTime.set(Long.MAX_VALUE); if(_inShutdown) { this.notifyAll(); // TODO: use different lock for shutdown? } } } }
private final void removeElementReaper(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); synchronized (this) { // TODO set needs tobe atomic to getFirst? ReaperElement first = _reaperElements.getFirst(); if(first != null) { nextDynamicCheckTime.set(first.getAbsoluteTimeout()); } else { nextDynamicCheckTime.set(Long.MAX_VALUE); if(_inShutdown) { this.notifyAll(); // TODO: use different lock for shutdown? } } } }
private final void removeElementReaper(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); synchronized (this) { // TODO set needs tobe atomic to getFirst? ReaperElement first = _reaperElements.getFirst(); if(first != null) { nextDynamicCheckTime.set(first.getAbsoluteTimeout()); } else { nextDynamicCheckTime.set(Long.MAX_VALUE); if(_inShutdown) { this.notifyAll(); // TODO: use different lock for shutdown? } } } }
private final void removeElementReaper(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); synchronized (this) { // TODO set needs tobe atomic to getFirst? ReaperElement first = _reaperElements.getFirst(); if(first != null) { nextDynamicCheckTime.set(first.getAbsoluteTimeout()); } else { nextDynamicCheckTime.set(Long.MAX_VALUE); if(_inShutdown) { this.notifyAll(); // TODO: use different lock for shutdown? } } } }
private final void removeElementReaper(ReaperElement reaperElement) { _reaperElements.remove(reaperElement); _timeouts.remove(reaperElement._control); synchronized (this) { // TODO set needs tobe atomic to getFirst? ReaperElement first = _reaperElements.getFirst(); if(first != null) { nextDynamicCheckTime.set(first.getAbsoluteTimeout()); } else { nextDynamicCheckTime.set(Long.MAX_VALUE); if(_inShutdown) { this.notifyAll(); // TODO: use different lock for shutdown? } } } }