Skip to content

Commit 22c5e0b

Browse files
authored
3.x: Add onSubscribe hook to ParallelFlowable operators (#7191)
1 parent 09b2b1b commit 22c5e0b

17 files changed

+144
-3
lines changed

src/main/java/io/reactivex/rxjava3/core/Scheduler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@
9191
public abstract class Scheduler {
9292
/**
9393
* Value representing whether to use {@link System#nanoTime()}, or default as clock for {@link #now(TimeUnit)}
94-
* and {@link Scheduler.Worker#now(TimeUnit)}
94+
* and {@link Scheduler.Worker#now(TimeUnit)}.
9595
* <p>
9696
* Associated system parameter:
9797
* <ul>
@@ -111,7 +111,7 @@ public abstract class Scheduler {
111111
* @throws NullPointerException if {@code unit} is {@code null}
112112
*/
113113
static long computeNow(TimeUnit unit) {
114-
if(!IS_DRIFT_USE_NANOTIME) {
114+
if (!IS_DRIFT_USE_NANOTIME) {
115115
return unit.convert(System.currentTimeMillis(), TimeUnit.MILLISECONDS);
116116
}
117117
return unit.convert(System.nanoTime(), TimeUnit.NANOSECONDS);

src/main/java/io/reactivex/rxjava3/internal/operators/parallel/ParallelCollect.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ public ParallelCollect(ParallelFlowable<? extends T> source,
4747

4848
@Override
4949
public void subscribe(Subscriber<? super C>[] subscribers) {
50+
subscribers = RxJavaPlugins.onSubscribe(this, subscribers);
51+
5052
if (!validate(subscribers)) {
5153
return;
5254
}

src/main/java/io/reactivex/rxjava3/internal/operators/parallel/ParallelConcatMap.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import io.reactivex.rxjava3.internal.operators.flowable.FlowableConcatMap;
2020
import io.reactivex.rxjava3.internal.util.ErrorMode;
2121
import io.reactivex.rxjava3.parallel.ParallelFlowable;
22+
import io.reactivex.rxjava3.plugins.RxJavaPlugins;
2223

2324
import java.util.Objects;
2425

@@ -55,6 +56,8 @@ public int parallelism() {
5556

5657
@Override
5758
public void subscribe(Subscriber<? super R>[] subscribers) {
59+
subscribers = RxJavaPlugins.onSubscribe(this, subscribers);
60+
5861
if (!validate(subscribers)) {
5962
return;
6063
}

src/main/java/io/reactivex/rxjava3/internal/operators/parallel/ParallelDoOnNextTry.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ public ParallelDoOnNextTry(ParallelFlowable<T> source, Consumer<? super T> onNex
4848

4949
@Override
5050
public void subscribe(Subscriber<? super T>[] subscribers) {
51+
subscribers = RxJavaPlugins.onSubscribe(this, subscribers);
52+
5153
if (!validate(subscribers)) {
5254
return;
5355
}

src/main/java/io/reactivex/rxjava3/internal/operators/parallel/ParallelFilter.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ public ParallelFilter(ParallelFlowable<T> source, Predicate<? super T> predicate
4040

4141
@Override
4242
public void subscribe(Subscriber<? super T>[] subscribers) {
43+
subscribers = RxJavaPlugins.onSubscribe(this, subscribers);
44+
4345
if (!validate(subscribers)) {
4446
return;
4547
}

src/main/java/io/reactivex/rxjava3/internal/operators/parallel/ParallelFilterTry.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ public ParallelFilterTry(ParallelFlowable<T> source, Predicate<? super T> predic
4646

4747
@Override
4848
public void subscribe(Subscriber<? super T>[] subscribers) {
49+
subscribers = RxJavaPlugins.onSubscribe(this, subscribers);
50+
4951
if (!validate(subscribers)) {
5052
return;
5153
}

src/main/java/io/reactivex/rxjava3/internal/operators/parallel/ParallelFlatMap.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import io.reactivex.rxjava3.functions.Function;
1919
import io.reactivex.rxjava3.internal.operators.flowable.FlowableFlatMap;
2020
import io.reactivex.rxjava3.parallel.ParallelFlowable;
21+
import io.reactivex.rxjava3.plugins.RxJavaPlugins;
2122

2223
/**
2324
* Flattens the generated Publishers on each rail.
@@ -57,6 +58,8 @@ public int parallelism() {
5758

5859
@Override
5960
public void subscribe(Subscriber<? super R>[] subscribers) {
61+
subscribers = RxJavaPlugins.onSubscribe(this, subscribers);
62+
6063
if (!validate(subscribers)) {
6164
return;
6265
}

src/main/java/io/reactivex/rxjava3/internal/operators/parallel/ParallelFlatMapIterable.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import io.reactivex.rxjava3.functions.Function;
1919
import io.reactivex.rxjava3.internal.operators.flowable.FlowableFlattenIterable;
2020
import io.reactivex.rxjava3.parallel.ParallelFlowable;
21+
import io.reactivex.rxjava3.plugins.RxJavaPlugins;
2122

2223
/**
2324
* Flattens the generated {@link Iterable}s on each rail.
@@ -50,6 +51,8 @@ public int parallelism() {
5051

5152
@Override
5253
public void subscribe(Subscriber<? super R>[] subscribers) {
54+
subscribers = RxJavaPlugins.onSubscribe(this, subscribers);
55+
5356
if (!validate(subscribers)) {
5457
return;
5558
}

src/main/java/io/reactivex/rxjava3/internal/operators/parallel/ParallelFromArray.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.reactivestreams.*;
1717

1818
import io.reactivex.rxjava3.parallel.ParallelFlowable;
19+
import io.reactivex.rxjava3.plugins.RxJavaPlugins;
1920

2021
/**
2122
* Wraps multiple Publishers into a ParallelFlowable which runs them
@@ -37,6 +38,8 @@ public int parallelism() {
3738

3839
@Override
3940
public void subscribe(Subscriber<? super T>[] subscribers) {
41+
subscribers = RxJavaPlugins.onSubscribe(this, subscribers);
42+
4043
if (!validate(subscribers)) {
4144
return;
4245
}

src/main/java/io/reactivex/rxjava3/internal/operators/parallel/ParallelFromPublisher.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import io.reactivex.rxjava3.internal.subscriptions.SubscriptionHelper;
2525
import io.reactivex.rxjava3.internal.util.BackpressureHelper;
2626
import io.reactivex.rxjava3.parallel.ParallelFlowable;
27+
import io.reactivex.rxjava3.plugins.RxJavaPlugins;
2728

2829
/**
2930
* Dispatches the values from upstream in a round robin fashion to subscribers which are
@@ -51,6 +52,8 @@ public int parallelism() {
5152

5253
@Override
5354
public void subscribe(Subscriber<? super T>[] subscribers) {
55+
subscribers = RxJavaPlugins.onSubscribe(this, subscribers);
56+
5457
if (!validate(subscribers)) {
5558
return;
5659
}

0 commit comments

Comments
 (0)