code: @Override
      public void start() {
          synchronized (this) {
              if (result != TimeoutResult.NEW) {
                  throw new IllegalStateException("Start called twice on the same timeout");
              }
              startTime = System.nanoTime();
              result = TimeoutResult.STARTED;
              if (!policy.getTimeout().isZero()) {
                  timeoutFuture = executorService.schedule(this::timeout, asClampedNanos(policy.getTimeout()), TimeUnit.NANOSECONDS);
              }
          }
      }
docs: {@inheritDoc}