docs: RunListener wrapIfNotThreadSafe(RunListener listener) {
          return listener.getClass().isAnnotationPresent(RunListener.ThreadSafe.class) ?
                  listener : new SynchronizedRunListener(listener, this);
      }