@Override
  public synchronized boolean isTimedOut(long ttlMillis) {
    long elapsed = System.nanoTime();
    long ttlNanos = ttlMillis * 1000 * 1000;
    if (elapsed - creationTime > ttlNanos) {
      timedOutUnsent = true;
      timedout = true;
      callback.receivedStatus(TIMED_OUT);
      callback.complete();
    } // else
      // timedout would be false, but we cannot allow you to untimeout an
      // operation.  This can happen when the latch timeout is shorter than the
      // default operation timeout.
    return timedout;
  }
Transition the state of this operation to the given state.
src/main/java/net/spy/memcached/protocol/BaseOperationImpl.java