Skip to content
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

http2: allow fully synchronous `_final()` #25609

Closed
wants to merge 2 commits into from

Conversation

@addaleax
Copy link
Member

commented Jan 21, 2019

/cc @mcollina

HTTP/2 streams do not use the fact that the native
StreamBase::Shutdown() is asynchronous by default and
always finish synchronously.

Adding a status code for this scenario allows skipping an
expensive MakeCallback() C++/JS boundary crossing.

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • commit message follows commit guidelines
http2: allow fully synchronous `_final()`
HTTP/2 streams do not use the fact that the native
`StreamBase::Shutdown()` is asynchronous by default and
always finish synchronously.

Adding a status code for this scenario allows skipping an
expensive `MakeCallback()` C++/JS boundary crossing.
@sam-github
Copy link
Member

left a comment

The docs in particular are quite helpful, thanks.

src/stream_base.h Outdated Show resolved Hide resolved
@mcollina
Copy link
Member

left a comment

LGTM

@addaleax

This comment has been minimized.

Copy link
Member Author

commented Jan 21, 2019

@addaleax

This comment has been minimized.

Copy link
Member Author

commented Jan 23, 2019

Landed in 2b65399

@addaleax addaleax closed this Jan 23, 2019

@addaleax addaleax deleted the addaleax:shutdown-sync branch Jan 23, 2019

pull bot pushed a commit to shakir-abdo/node that referenced this pull request Jan 23, 2019
http2: allow fully synchronous `_final()`
HTTP/2 streams do not use the fact that the native
`StreamBase::Shutdown()` is asynchronous by default and
always finish synchronously.

Adding a status code for this scenario allows skipping an
expensive `MakeCallback()` C++/JS boundary crossing.

PR-URL: nodejs#25609
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
addaleax added a commit that referenced this pull request Jan 23, 2019
http2: allow fully synchronous `_final()`
HTTP/2 streams do not use the fact that the native
`StreamBase::Shutdown()` is asynchronous by default and
always finish synchronously.

Adding a status code for this scenario allows skipping an
expensive `MakeCallback()` C++/JS boundary crossing.

PR-URL: #25609
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
@MylesBorins MylesBorins referenced this pull request Jan 24, 2019
BethGriggs added a commit that referenced this pull request Apr 29, 2019
http2: allow fully synchronous `_final()`
HTTP/2 streams do not use the fact that the native
`StreamBase::Shutdown()` is asynchronous by default and
always finish synchronously.

Adding a status code for this scenario allows skipping an
expensive `MakeCallback()` C++/JS boundary crossing.

PR-URL: #25609
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
@BethGriggs BethGriggs referenced this pull request May 1, 2019
BethGriggs added a commit that referenced this pull request May 10, 2019
http2: allow fully synchronous `_final()`
HTTP/2 streams do not use the fact that the native
`StreamBase::Shutdown()` is asynchronous by default and
always finish synchronously.

Adding a status code for this scenario allows skipping an
expensive `MakeCallback()` C++/JS boundary crossing.

PR-URL: #25609
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
MylesBorins added a commit that referenced this pull request May 16, 2019
http2: allow fully synchronous `_final()`
HTTP/2 streams do not use the fact that the native
`StreamBase::Shutdown()` is asynchronous by default and
always finish synchronously.

Adding a status code for this scenario allows skipping an
expensive `MakeCallback()` C++/JS boundary crossing.

PR-URL: #25609
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants
You can’t perform that action at this time.