public void stop() {
    debug("Stop called");
    List<Runnable> waiters;
    synchronized (myLock) {
      myStopped = true;
      waiters = new ArrayList<>(myWaitingUpdateCompletionQueue);
      myWaitingUpdateCompletionQueue.clear();
    }
    debug("Stop - calling runnables");
    runWaiters(waiters);
    debug("Stop - finished");
  }
public void stop()