-
-
Notifications
You must be signed in to change notification settings - Fork 182
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
DisposeMany() Rework #755
DisposeMany() Rework #755
Conversation
This also appears to fix #668 based on the initial reproduction. |
…erform disposal after downstream operations have processed, rather than before, since the operator cannot guarantee that disposal is safe, when downstream consumers may still need to make use of these disposable items, in order to process removals. Also fixed a bug within both versions of the `.SubscribeMany()` operator, where errors were not being properly propagated through the stream, and instead could bubble up to stream inputs. Also fixed a bug within the cache version of `.MergeMany()` that allowed an internally-used subject to be disposed, without cleaning up all subscriptions that may later make use of it.
a1880d0
to
8266846
Compare
…any()` operators.
For reference, performance is ever so slightly improved, with these changes.
|
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #755 +/- ##
==========================================
+ Coverage 64.74% 65.46% +0.72%
==========================================
Files 226 227 +1
Lines 11459 11091 -368
Branches 2334 2294 -40
==========================================
- Hits 7419 7261 -158
+ Misses 3083 2889 -194
+ Partials 957 941 -16 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is an excellent contribution, and thanks for taking the pain of getting your head around how it should work.
This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Reworked the
.DisposeMany()
operator for both caches and lists to perform disposal after downstream operations have processed, rather than before, since the operator cannot guarantee that disposal is safe, when downstream consumers may still need to make use of these disposable items, in order to process removals.Also fixed a bug within both versions of the
.SubscribeMany()
operator, where errors were not being properly propagated through the stream, and instead could bubble up to stream inputs.Also fixed a bug within the cache version of
.MergeMany()
that allowed an internally-used subject to be disposed, without cleaning up all subscriptions that may later make use of it.Resolves #732