void () { 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"); }