do not use nextTick to wait for flush.
This commit is contained in:
parent
da59a32ac5
commit
797dcc2369
|
@ -1598,7 +1598,9 @@ Program.prototype._write = function(text) {
|
||||||
// Example: `DCS tmux; ESC Pt ST`
|
// Example: `DCS tmux; ESC Pt ST`
|
||||||
// Real: `DCS tmux; ESC Pt ESC \`
|
// Real: `DCS tmux; ESC Pt ESC \`
|
||||||
Program.prototype._twrite = function(data) {
|
Program.prototype._twrite = function(data) {
|
||||||
var self = this;
|
var self = this
|
||||||
|
, iterations = 0
|
||||||
|
, timer;
|
||||||
|
|
||||||
if (this.tmux) {
|
if (this.tmux) {
|
||||||
// Replace all STs with BELs so they can be nested within the DCS code.
|
// Replace all STs with BELs so they can be nested within the DCS code.
|
||||||
|
@ -1610,10 +1612,13 @@ Program.prototype._twrite = function(data) {
|
||||||
// If we've never even flushed yet, it means we're still in
|
// If we've never even flushed yet, it means we're still in
|
||||||
// the normal buffer. Wait for alt screen buffer.
|
// the normal buffer. Wait for alt screen buffer.
|
||||||
if (this.output.bytesWritten === 0) {
|
if (this.output.bytesWritten === 0) {
|
||||||
nextTick(function() {
|
timer = setInterval(function() {
|
||||||
|
if (self.output.bytesWritten > 0 || ++iterations === 50) {
|
||||||
|
clearInterval(timer);
|
||||||
self.flush();
|
self.flush();
|
||||||
self.output.write(data);
|
self.output.write(data);
|
||||||
});
|
}
|
||||||
|
}, 100);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue