docs: public long timeout()
      {
          final long now = now();
          for (Entry<Timer, Long> entry : entries()) {
              final Timer timer = entry.getKey();
              final Long expiration = entry.getValue();
  
              if (timer.alive) {
                  //  Live timer, lets return the timeout
                  if (expiration - now > 0) {
                      return expiration - now;
                  }
                  else {
                      return 0;
                  }
              }
  
              //  Remove it from the list of active timers.
              timers.remove(expiration, timer);
          }
          //  Wait forever as no timers are alive
          return -1;
      }