diff options
author | Anna Henningsen <anna@addaleax.net> | 2017-10-24 23:25:02 +0200 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2017-10-30 21:59:18 +0100 |
commit | 0c90c9c9438f58bf5819abd77b6de1cfa12ce7c2 (patch) | |
tree | d46953acc466b2756e23a10c195c56ce109d8fe4 /src/node_http2.cc | |
parent | 41aaacb6b19d047edf71559c3adf48a20aa1b6b0 (diff) | |
download | android-node-v8-0c90c9c9438f58bf5819abd77b6de1cfa12ce7c2.tar.gz android-node-v8-0c90c9c9438f58bf5819abd77b6de1cfa12ce7c2.tar.bz2 android-node-v8-0c90c9c9438f58bf5819abd77b6de1cfa12ce7c2.zip |
http2: track async state for sending
Sending pending data may involve running arbitrary JavaScript code.
Therefore, it should involve a callback scope.
PR-URL: https://github.com/nodejs/node/pull/16461
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Diffstat (limited to 'src/node_http2.cc')
-rw-r--r-- | src/node_http2.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/node_http2.cc b/src/node_http2.cc index 9c8f1293ac..9f5273c550 100644 --- a/src/node_http2.cc +++ b/src/node_http2.cc @@ -91,6 +91,12 @@ Http2Session::Http2Session(Environment* env, prep_->data = static_cast<void*>(this); uv_prepare_start(prep_, [](uv_prepare_t* t) { Http2Session* session = static_cast<Http2Session*>(t->data); + HandleScope scope(session->env()->isolate()); + Context::Scope context_scope(session->env()->context()); + + // Sending data may call arbitrary JS code, so keep track of + // async context. + InternalCallbackScope callback_scope(session); session->SendPendingData(); }); } |