code: protected final void forEachObserver(Consumer<O> action) {
          ListHelper.forEach(observers, o -> action.accept(o));
      }
docs: Executes action for each observer, regardless of recursion state.
  If {@code action} throws an exception for one observer, it will not
  be called for any subsequent observers and the exception will be
  propagated by this method.
  @param action action to execute for each observer.