Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3.x: Add fusion support to concatMap{Maybe|Single|Completable} #7165

Merged
merged 1 commit into from
Jan 27, 2021

Conversation

akarnokd
Copy link
Member

This PR adds front fusion support to

  • Flowable.concatMapCompletable
  • Flowable.concatMapMaybe
  • Flowable.concatMapSingle
  • Observable.concatMapCompletable
  • Observable.concatMapMaybe
  • Observable.concatMapSingle

The operators have been tidied up by factoring out common code paths.

In addition, the DeferredScalarSubscription's fusion-emission had to be fixed. In async fusion mode, onNext(null) is generally expected from the upstream but DeferredScalarSubscription sent the value itself. Now it correctly sends null. (DeferredScalarDisposable already did this correctly).

Resolves #7061

@akarnokd akarnokd added this to the 3.1 milestone Jan 26, 2021
@codecov
Copy link

codecov bot commented Jan 26, 2021

Codecov Report

Merging #7165 (d832fb1) into 3.x (e657635) will increase coverage by 0.01%.
The diff coverage is 100.00%.

Impacted file tree graph

@@             Coverage Diff              @@
##                3.x    #7165      +/-   ##
============================================
+ Coverage     99.53%   99.54%   +0.01%     
- Complexity     6708     6739      +31     
============================================
  Files           745      747       +2     
  Lines         47332    47311      -21     
  Branches       6376     6356      -20     
============================================
- Hits          47113    47097      -16     
+ Misses          100       96       -4     
+ Partials        119      118       -1     
Impacted Files Coverage Δ Complexity Δ
...ternal/operators/mixed/ConcatMapXMainObserver.java 100.00% <100.00%> (ø) 16.00 <16.00> (?)
...rnal/operators/mixed/ConcatMapXMainSubscriber.java 100.00% <100.00%> (ø) 16.00 <16.00> (?)
.../operators/mixed/FlowableConcatMapCompletable.java 100.00% <100.00%> (ø) 2.00 <0.00> (ø)
...ternal/operators/mixed/FlowableConcatMapMaybe.java 100.00% <100.00%> (ø) 2.00 <0.00> (ø)
...ernal/operators/mixed/FlowableConcatMapSingle.java 100.00% <100.00%> (ø) 2.00 <0.00> (ø)
...perators/mixed/ObservableConcatMapCompletable.java 100.00% <100.00%> (ø) 3.00 <0.00> (ø)
...rnal/operators/mixed/ObservableConcatMapMaybe.java 100.00% <100.00%> (ø) 3.00 <0.00> (ø)
...nal/operators/mixed/ObservableConcatMapSingle.java 100.00% <100.00%> (ø) 3.00 <0.00> (ø)
...rnal/subscriptions/DeferredScalarSubscription.java 100.00% <100.00%> (ø) 29.00 <0.00> (ø)
...tivex/rxjava3/internal/jdk8/ParallelCollector.java 91.74% <0.00%> (-6.43%) 2.00% <0.00%> (ø%)
... and 16 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e657635...d832fb1. Read the comment docs.

@akarnokd akarnokd merged commit a99b2e0 into ReactiveX:3.x Jan 27, 2021
@akarnokd akarnokd deleted the concatMapXFusion branch January 27, 2021 15:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

blockingForEach doesn't receive events from concatMapSingle
2 participants