-
Notifications
You must be signed in to change notification settings - Fork 29.8k
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
quic: continued refactoring of quic APIs #34351
Conversation
Moving back to a draft, several failures on POSIX systems... |
This comment has been minimized.
This comment has been minimized.
Moving back to draft to work on the changes @ronag suggested for using an async |
@ronag... so just to follow up on this. I've gone ahead and made the change to use const stream = await session.openStream();
console.log(stream.unidirectional); We end up having to do... const stream = session.openStream();
await once(stream, 'ready');
console.log(stream.unidirectional); The additional methods for sending headers, getting the id and directionality of the stream, etc, all end up having to wait until after the ready event anyway. We could buffer the method calls and make those wait on I'm really preferring the |
Yea that does seem simpler. Just feels a little different than the rest of our API's (maybe calling it |
The move to the async |
fcad493
to
529a5c1
Compare
Ok, @nodejs/quic .. this should finally be ready for review |
Resumed due to flaky failures... CI: https://ci.nodejs.org/job/node-test-pull-request/32479/ |
Although most of the time openStream will be able to create the stream immediately, when a stream is opened before the handshake is complete we have to wait for the handshake to be complete before continuing.
Removing no longer needed code
qlog files are diagnostic files that are being used to verify the quic implementation. Make sure they don't get checked in.
This one was a bit of a rabbit hole... but, with this set of changes, `QuicStream` should now work with autoDestroy, supports a promisified `close()`, and fixes a number of other internal bugs that were spotted trying to get it to work.
Although most of the time openStream will be able to create the stream immediately, when a stream is opened before the handshake is complete we have to wait for the handshake to be complete before continuing. PR-URL: #34351 Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: Anna Henningsen <[email protected]>
PR-URL: #34351 Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: Anna Henningsen <[email protected]>
Removing no longer needed code PR-URL: #34351 Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: Anna Henningsen <[email protected]>
PR-URL: #34351 Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: Anna Henningsen <[email protected]>
qlog files are diagnostic files that are being used to verify the quic implementation. Make sure they don't get checked in. PR-URL: #34351 Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: Anna Henningsen <[email protected]>
This one was a bit of a rabbit hole... but, with this set of changes, `QuicStream` should now work with autoDestroy, supports a promisified `close()`, and fixes a number of other internal bugs that were spotted trying to get it to work. PR-URL: #34351 Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: Anna Henningsen <[email protected]>
PR-URL: #34351 Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: Anna Henningsen <[email protected]>
PR-URL: #34351 Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: Anna Henningsen <[email protected]>
Landed in 69c78be...b06fe33 |
@nodejs/quic ... this one includes a fairly extensive reworking of the
QuicStream
lifecycle, including being able to enableautoDestroy
, eliminating the'abort'
event and theaborted
property, fixing up a number of bugs and internal timing issues. There's still a lot to do to validate protocol, timing, and error handling, but this is a major step in the right direction./cc @ronag
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes