docs: public void runMoreOrStop(AsyncEvent<K> _event) {
      for (;;) {
        try {
          _event.execute();
        } catch (Throwable t) {
          cache.getLog().warn("Async event exception", t);
        }
        final K key = _event.getKey();
        synchronized (getLockObject(key)) {
          Queue<AsyncEvent<K>> q = keyQueue.get(key);
          if (q.isEmpty()) {
            keyQueue.remove(key);
            return;
          }
          _event = q.remove();
        }
      }
    }