src/main/java/io/reactivex/internal/operators/observable/ObservablePublish.java
public static <T> ConnectableObservable<T> create(ObservableSource<T> source) {
        // the current connection to source needs to be shared between the operator and its onSubscribe call
        final AtomicReference<PublishObserver<T>> curr = new AtomicReference<PublishObserver<T>>();
        ObservableSource<T> onSubscribe = new PublishSource<T>(curr);
        return RxJavaPlugins.onAssembly(new ObservablePublish<T>(onSubscribe, source, curr));
    }
public static <T> ConnectableObservable<T> create(ObservableSource<T> source) {
        // the current connection to source needs to be shared between the operator and its onSubscribe call
        final AtomicReference<PublishObserver<T>> curr = new AtomicReference<PublishObserver<T>>();
        ObservableSource<T> onSubscribe = new PublishSource<T>(curr);
        return RxJavaPlugins.onAssembly(new ObservablePublish<T>(onSubscribe, source, curr));
    }
public static < T > ConnectableObservable < T > create ( ObservableSource < T > source ) { // the current connection to source needs to be shared between the operator and its onSubscribe call final AtomicReference < PublishObserver < T > > curr = new AtomicReference < PublishObserver < T > > ( ) ; ObservableSource < T > onSubscribe = new PublishSource < T > ( curr ) ; return RxJavaPlugins . onAssembly ( new ObservablePublish < T > ( onSubscribe , source , curr ) ) ; }
Creates a OperatorPublish instance to publish values of the given source observable.
@param <T> the source value type
@param source the source observable
@return the connectable observable
Creates a OperatorPublish instance to publish values of the given source observable .