Skip to content

Commit 1b39e6b

Browse files
Merge pull request #1951 from abersnaze/unnecessary
Remove extraneous request(n) and onCompleted() calls when unsubscribed.
2 parents f934706 + 332b67c commit 1b39e6b

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

src/main/java/rx/internal/operators/OnSubscribeFromIterable.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,9 @@ public void request(long n) {
9898
}
9999

100100
if (!it.hasNext()) {
101-
o.onCompleted();
101+
if (!o.isUnsubscribed()) {
102+
o.onCompleted();
103+
}
102104
return;
103105
}
104106
if (REQUESTED_UPDATER.addAndGet(this, -r) == 0) {

src/main/java/rx/internal/operators/OperatorMerge.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,8 @@ private void handleNewSource(Observable<? extends T> t) {
186186
InnerSubscriber<T> i = new InnerSubscriber<T>(this, producerIfNeeded);
187187
i.sindex = childrenSubscribers.add(i);
188188
t.unsafeSubscribe(i);
189-
request(1);
189+
if (!isUnsubscribed())
190+
request(1);
190191
}
191192

192193
private void handleScalarSynchronousObservable(ScalarSynchronousObservable<? extends T> t) {

0 commit comments

Comments
 (0)