-
Notifications
You must be signed in to change notification settings - Fork 7.6k
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
Operators: And, Then, When #506
Conversation
Issue ReactiveX#23, Issue ReactiveX#88, Issue ReactiveX#100
RxJava-pull-requests #430 FAILURE |
I don't understand. I used the master, haven't touched groupBy or the schedulers, the build succeeds on my machine (although with JDK 7). Now what? Edit: I found the logical error in OperationGroupByTest:334; assuming the thread will finish if it emits 29-49 items is unreliable. Should that assertion be tested at all? |
just another case of #383 (comment). The OperationGroupByTest test issue has not be fixed yet. |
* Represents an activated plan. | ||
*/ | ||
public abstract class ActivePlan0 { | ||
protected final Map<JoinObserver, JoinObserver> joinObservers = new HashMap<JoinObserver, JoinObserver>(); |
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.
Is a Plan
ever accessed in a multi-threaded environment?
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.
I've adapted the code from the latest Rx sources. Concurrency-related gate objects where present in the JoinObserver1 to protect a list of ActivePlan0 instances. The second place was in the when() to again build a list of ActivePlan0 instances. Since the Rx.NET source didn't contain any other locks, volatiles or concurrent instances, I assumed they are safe.
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.
Okay, thanks for the validation.
That is an impressive contribution @akarnokd. I don't see any problems in my review. The unit tests were essential to understanding and trusting this, so thank you for being thorough. I'm going to merge this and leverage the fact that we're still pre 1.0 so that if there are any issues found we can still fix them even if we need to break a signature. |
Operators: And, Then, When
Operators: And, Then, When
Issue #23, Issue #88, Issue #100
Can be extended to Plan4..Plan9 and Pattern4..Pattern9 if Action4..Action9 is available. Not sure about the ActionN version.