tty: don't read from console stream upon creation
The tty.ReadStream constructor initializes this as a socket, which causes a read to be initiated. Even though during stdin initalization we call readStop shortly after, the read operation can consume keypress events from the system buffers. Fixes: https://github.com/nodejs/node/issues/5384 PR-URL: https://github.com/nodejs/node/pull/5776 Reviewed-By: cjihrig - Colin Ihrig <cjihrig@gmail.com> Reviewed-By: jasnell - James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
f429fe1b88
commit
4611389294
@ -17,17 +17,23 @@ function ReadStream(fd, options) {
|
||||
if (!(this instanceof ReadStream))
|
||||
return new ReadStream(fd, options);
|
||||
|
||||
// pauseOnCreate to avoid reading from the sytem buffer
|
||||
options = util._extend({
|
||||
highWaterMark: 0,
|
||||
readable: true,
|
||||
writable: false,
|
||||
handle: new TTY(fd, true)
|
||||
handle: new TTY(fd, true),
|
||||
pauseOnCreate: true
|
||||
}, options);
|
||||
|
||||
net.Socket.call(this, options);
|
||||
|
||||
this.isRaw = false;
|
||||
this.isTTY = true;
|
||||
|
||||
// Let the stream resume automatically when 'data' event handlers
|
||||
// are added, even though it was paused on creation
|
||||
this._readableState.flowing = null;
|
||||
}
|
||||
inherits(ReadStream, net.Socket);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user