code: public void addListener(L listener, Executor executor) {
      checkNotNull(listener, "listener");
      checkNotNull(executor, "executor");
      listeners.add(new PerListenerQueue<>(listener, executor));
    }
docs: Adds a listener that will be called using the given executor when events are later {@link
  #enqueue enqueued} and {@link #dispatch dispatched}.