public void setIdleTimeout(long idleTimeout) { long old = this.idleTimeout; this.idleTimeout = idleTimeout; // Do we have an old timeout if (old > 0) { // if the old was less than or equal to the new timeout, then // nothing more to do if (old <= idleTimeout) return; // old timeout is too long, so cancel it. deactivate(); } // If we have a new timeout, then check and reschedule if (isOpen()) activate(); }
@Override public void run() { long idleLeft = checkIdleTimeout(); if (idleLeft >= 0) scheduleIdleTimeout(idleLeft > 0 ? idleLeft : getIdleTimeout()); } };
protected long checkIdleTimeout() { if (isOpen()) { long idleTimestamp = getIdleTimestamp(); long idleTimeout = getIdleTimeout(); long idleElapsed = Millisecond100Clock.currentTimeMillis() - idleTimestamp; long idleLeft = idleTimeout - idleElapsed; // System.out.println("{} idle timeout check, elapsed: {} ms, // remaining: {} ms", this, idleElapsed, idleLeft); if (idleTimestamp != 0 && idleTimeout > 0) { if (idleLeft <= 0) { // System.out.println("{} idle timeout expired", this); try { onIdleExpired(new TimeoutException( "Idle timeout expired: " + idleElapsed + "/" + idleTimeout + " ms")); } finally { notIdle(); } } } return idleLeft >= 0 ? idleLeft : 0; } return -1; }
private void scheduleIdleTimeout(long delay) { Scheduler.Future newTimeout = null; if (isOpen() && delay > 0 && scheduler != null) newTimeout = scheduler.schedule(idleTask, delay, TimeUnit.MILLISECONDS); Scheduler.Future oldTimeout = timeout.getAndSet(newTimeout); if (oldTimeout != null) oldTimeout.cancel(); }
public void onClose() { deactivate(); }
public void onOpen() { activate(); }
public long getIdleFor() { return Millisecond100Clock.currentTimeMillis() - getIdleTimestamp(); }
protected long checkIdleTimeout() { if (isOpen()) { long idleTimestamp = getIdleTimestamp(); long idleTimeout = getIdleTimeout(); long idleElapsed = Millisecond100Clock.currentTimeMillis() - idleTimestamp; long idleLeft = idleTimeout - idleElapsed; // System.out.println("{} idle timeout check, elapsed: {} ms, // remaining: {} ms", this, idleElapsed, idleLeft); if (idleTimestamp != 0 && idleTimeout > 0) { if (idleLeft <= 0) { // System.out.println("{} idle timeout expired", this); try { onIdleExpired(new TimeoutException( "Idle timeout expired: " + idleElapsed + "/" + idleTimeout + " ms")); } finally { notIdle(); } } } return idleLeft >= 0 ? idleLeft : 0; } return -1; }
private void scheduleIdleTimeout(long delay) { Scheduler.Future newTimeout = null; if (isOpen() && delay > 0 && scheduler != null) newTimeout = scheduler.schedule(idleTask, delay, TimeUnit.MILLISECONDS); Scheduler.Future oldTimeout = timeout.getAndSet(newTimeout); if (oldTimeout != null) oldTimeout.cancel(); }
public void onClose() { deactivate(); }
public void onOpen() { activate(); }
public long getIdleFor() { return Millisecond100Clock.currentTimeMillis() - getIdleTimestamp(); }
protected long checkIdleTimeout() { if (isOpen()) { long idleTimestamp = getIdleTimestamp(); long idleTimeout = getIdleTimeout(); long idleElapsed = Millisecond100Clock.currentTimeMillis() - idleTimestamp; long idleLeft = idleTimeout - idleElapsed; // System.out.println("{} idle timeout check, elapsed: {} ms, // remaining: {} ms", this, idleElapsed, idleLeft); if (idleTimestamp != 0 && idleTimeout > 0) { if (idleLeft <= 0) { // System.out.println("{} idle timeout expired", this); try { onIdleExpired(new TimeoutException( "Idle timeout expired: " + idleElapsed + "/" + idleTimeout + " ms")); } finally { notIdle(); } } } return idleLeft >= 0 ? idleLeft : 0; } return -1; }
public void setIdleTimeout(long idleTimeout) { long old = this.idleTimeout; this.idleTimeout = idleTimeout; // Do we have an old timeout if (old > 0) { // if the old was less than or equal to the new timeout, then // nothing more to do if (old <= idleTimeout) return; // old timeout is too long, so cancel it. deactivate(); } // If we have a new timeout, then check and reschedule if (isOpen()) activate(); }
@Override public void run() { long idleLeft = checkIdleTimeout(); if (idleLeft >= 0) scheduleIdleTimeout(idleLeft > 0 ? idleLeft : getIdleTimeout()); } };
private void scheduleIdleTimeout(long delay) { Scheduler.Future newTimeout = null; if (isOpen() && delay > 0 && scheduler != null) newTimeout = scheduler.schedule(idleTask, delay, TimeUnit.MILLISECONDS); Scheduler.Future oldTimeout = timeout.getAndSet(newTimeout); if (oldTimeout != null) oldTimeout.cancel(); }
public void onClose() { deactivate(); }
public void onOpen() { activate(); }
public long getIdleFor() { return Millisecond100Clock.currentTimeMillis() - getIdleTimestamp(); }
public void setIdleTimeout(long idleTimeout) { long old = idleTimeout; this.idleTimeout = idleTimeout; // Do we have an old timeout if (old > 0) { // if the old was less than or equal to the new timeout, then // nothing more to do if (old <= idleTimeout) return; // old timeout is too long, so cancel it. deactivate(); } // If we have a new timeout, then check and reschedule if (isOpen()) activate(); }