Exemplo n.º 1
0
  /**
   * @param task
   * @param delay A delay in addition to the default duration of the timeout
   */
  public void schedule(Task task, long delay) {
    synchronized (_lock) {
      if (task._timestamp != 0) {
        task.unlink();
        task._timestamp = 0;
      }
      task._timeout = this;
      task._expired = false;
      task._delay = delay;
      task._timestamp = _now + delay;

      Task last = _head._prev;
      while (last != _head) {
        if (last._timestamp <= task._timestamp) break;
        last = last._prev;
      }
      last.link(task);
    }
  }
Exemplo n.º 2
0
 /* ------------------------------------------------------------ */
 public Timeout(Object lock) {
   _lock = lock;
   _head._timeout = this;
 }
Exemplo n.º 3
0
 /* ------------------------------------------------------------ */
 public Timeout() {
   _lock = new Object();
   _head._timeout = this;
 }