public void forEach(final Consumer<T> action) {
    ImmutableSet.copyOf(
            // we copy here to ensure that our callback, which may add another subscriber on this
            // event, won't trigger that new additional subscriber
            subscribers.values())
        .forEach(
            subscriber -> {
              try {
                action.accept(subscriber);
              } catch (final Exception e) {
                if (suppressCallbackExceptions) {
                  LOG.debug("Error in callback: {}", e);
                } else {
                  throw e;
                }
              }
            });
  }
Iterate through the current list of subscribers. This is typically used to deliver events e.g.:

<pre>
<code>subscribers.forEach(subscriber -&gt; subscriber.onEvent());</code>
</pre>

@param action the action to perform for each subscriber
util/src/main/java/org/hyperledger/besu/util/Subscribers.java