-
Notifications
You must be signed in to change notification settings - Fork 147
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
Dynamic forking: inconsistent behavior #638
Comments
Yeah, late forks have always had this issue. What's going on here is that the late fork doesn't exert back-pressure immediately since it comes in late; the decision to generate a new value has already been made. That is, before I can see why this behavior is surprising, however. Pausing from the beginning is probably the right thing to do here, but I'll have to think about how to implement this properly, as it requires the concept of cancelling a previous request. Also, I'm curious, when you say "which in my opinion is an option that grants a broader set of capabilities", are you referring to "paused from the beginning" or "getting processed all the time"? If the latter, can you explain why you think it's better? It seems to me like processing |
I referred to "getting processed all the time". My opinion was rushed out and after some thinking I have to say that I don't see any reason for Though I have to point out that there're cases when consumer-producer relation should work without back pressure, but that can be achieved by just forwarding data from one stream to another with the help of |
Consumer-producer without backpressure is what observe is for. It does exactly what you suggests (forwards data using |
Forgot about |
Environment
Highland: 3.0.0.beta-5
Browser: Chrome 61
Example
The output:
Problem
During "late write" step
even
path is getting processed, while on "late write 2" step it is paused.This is inconsistent as it should be either paused from the beginning or getting processed all the time (which in my opinion is an option that grants a broader set of capabilities).
The text was updated successfully, but these errors were encountered: