3.x: Add concatMap with Scheduler guaranteeing where the mapper runs #6538
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds an overload to
concatMap
andconcatMapDelayError
in bothFlowable
andObservable
which makes sure themapper
function is always executed on a dedicated scheduler.By default
concatMap
may execute themapper
function on various threads: the subscribing thread, the upstream thread generating the items to be mapped or the thread where the generated inner source terminates. These overloads remove this kind of uncertainty.The implementation is a copy of the original concatMap instead of an extension so that optimizations for the non-scheduled variants still work without extra overhead.
Overloads to the
concatMap{Single|Maybe|Completable}
andconcatMap{Single|Maybe|Completable}DelayError
may be added in a separate PR later.Resolves #6447