-
Notifications
You must be signed in to change notification settings - Fork 965
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
refactor(identify): use ReadyUpgrade
for {In,Out}boundUpgrade
#3412
Conversation
use ReadyUpgrade for Handler::InboundProtocol
use ReadyUpgrade for Handler::OutboundProtocol.
As I laid out in the comment below, I don't think we will maintain the same timeouts unfortunately. What we can do is manually compose together |
I think having multiple sets (i.e. different fields) of tasks is better.
|
yeah makes sense, reverted it ptal :) |
Originally, I envisioned But, I've since evolved this idea a bit and the latest draft is now here: mxinden/asynchronous-codec#5 That implements Technically, this can also be done separately but I think it might be good to test compatibility of these ideas first and see how it pans out. |
The idea more concretely is that we have a This we would combine with |
This pull request has merge conflicts. Could you please resolve them @jxs? 🙏 |
In #4275, we are now adding a |
Thanks for the ping Thomas, I won't have much bandwidth in the next week, @dgarus you wanna go ahead and take it? |
Hi colleagues! |
Closing in favor of #4563. |
Description
Starts addressing #2863
Notes
I read the discussion Thomas, namely your comment to start with the
TimedFutures
implementation. But as I wasn't completely familiar with everything you wrote I started experimenting withidentify
and was able to useReadyUpgrade
for{In,Out}boundUpgrade
therefore removing most of theprotocol
code.Links to any relevant issues
Open Questions
I am not familiar with all the protocols yet, but wdyt of following the same approach hereby presented for
identify
and first replace all custom{In,Out}boundUpgrade
's withReadyUpgrade
's then creating theTimedFutures
and then introducing the breaking changes on theConnectionHandler
?The reason I ask this, is because with
identify
for example this PR AFAICT maintains the same timeouts and backpressure right? Nonetheless if you prefer we can addTimedFutures
now and introduce it already toidentify
no strong opinion.What do you think of joining all the
events
on the sameFuturesUnordered
? I feel it makes sense as they are all events, it's just some haven't been resolved but if prefered I can rollback to theevents
andpending_replies
approach, though that will probably mean the need for another enum with the identify variants.Change checklist