-
Notifications
You must be signed in to change notification settings - Fork 751
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
Zip operator doesn't work properly for more than 2 streams #824
Comments
For reference, the mentioned SO question can be found here: https://stackoverflow.com/questions/52654306/problem-with-zipping-more-than-2-observable-sequences |
The problem is that the queue of the
Commenting out the
see: https://github.com/dotnet/reactive/pull/635/files#diff-9e17b95d856736d153ecd78c6876ec83L71 |
Hm, #828 looks even more simpler. 😊 |
On an abstract level, we might run into this type of problems anywhere, where an Observer inherits from SafeObserver and overrides Dispose. For immediate sources, when we did everything with SingleAssignmentDisposables, the order of execution was obviously different then. I'll give it a review. Thx @akarnokd for investigating this. Update: Zip is indeed the only operator that uses a SafeObserver inherited class which overrides Dispose. When #828 gets merged, there are none at all and we might consider removing the virtual modifier on Dispose so we don't run into that issue in the future. @akarnokd Any thoughts ? |
Bug for versions Versions 4.1.0 and 4.1.1
The code posted below causes the following exception:
Zipping of 2 streams works fine.
As Shlomo on StackOverflow pointed out, if you re-define stream as such:
var stream = Observable.Return(1).Delay(TimeSpan.FromMilliseconds(15));
then the operator works as intended.
The text was updated successfully, but these errors were encountered: