You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
At the end you will see that only 1 child will be executed concurrently. At the beginning it is 30.
It is about flatMap operator with concurrency argument. In the case if you use concurrency Integer.MAX_VALUE with fixed pool is everything ok.
The problem happens in the case if more than one inner process are done in the same drainLoop.
I think it is here (io.reactivex.internal.operators.observable.ObservableFlatMap 448)
Thanks for reporting. This is indeed a bug in the operator which should try to sustain the concurrency level as best as it can. I'll post a fix shortly.
Uh oh!
There was an error while loading. Please reload this page.
RxJava 2.2.3
Following code reproduces the problem:
At the end you will see that only 1 child will be executed concurrently. At the beginning it is 30.
It is about flatMap operator with concurrency argument. In the case if you use concurrency Integer.MAX_VALUE with fixed pool is everything ok.
The problem happens in the case if more than one inner process are done in the same drainLoop.
I think it is here (io.reactivex.internal.operators.observable.ObservableFlatMap 448)
More then one will be removed, but innerCompleted pulls only one as replacement (io.reactivex.internal.operators.observable.ObservableFlatMap 468)
The text was updated successfully, but these errors were encountered: