http2: use writableFinished instead of _writableState

PR-URL: https://github.com/nodejs/node/pull/28007
Refs: https://github.com/nodejs/node/issues/445
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Rich Trott <rtrott@gmail.com>
This commit is contained in:
zero1five 2019-06-02 19:39:03 +08:00 committed by Rich Trott
parent 33aef82b42
commit f11a4ec638

View File

@ -1556,7 +1556,7 @@ function closeStream(stream, code, rstStreamStatus = kSubmitRstStream) {
stream.setTimeout(0);
stream.removeAllListeners('timeout');
const { ending, finished } = stream._writableState;
const { ending } = stream._writableState;
if (!ending) {
// If the writable side of the Http2Stream is still open, emit the
@ -1572,7 +1572,7 @@ function closeStream(stream, code, rstStreamStatus = kSubmitRstStream) {
if (rstStreamStatus !== kNoRstStream) {
const finishFn = finishCloseStream.bind(stream, code);
if (!ending || finished || code !== NGHTTP2_NO_ERROR ||
if (!ending || stream.writableFinished || code !== NGHTTP2_NO_ERROR ||
rstStreamStatus === kForceRstStream)
finishFn();
else
@ -1982,8 +1982,7 @@ class Http2Stream extends Duplex {
return;
}
// TODO(mcollina): remove usage of _*State properties
if (this._writableState.finished) {
if (this.writableFinished) {
if (!this.readable && this.closed) {
this.destroy();
return;