Change the way backoff works. Instead of stopping reading from the pty

when the client tty backs up too much, just stop updating the tty and
only update the internal screen. Then when the tty recovers, force a
redraw.

This prevents a dodgy client from causing other clients to go into
backoff while still allowing tmux to be responsive (locally) when seeing
lots of output.
This commit is contained in:
Nicholas Marriott
2010-08-11 07:34:43 +00:00
parent 933dc48de3
commit 8363e31953
4 changed files with 56 additions and 39 deletions

4
tty.c
View File

@ -578,7 +578,9 @@ tty_write(void (*cmdfn)(
continue;
if (c->session->curw->window == wp->window) {
if (c->tty.flags & TTY_FREEZE || c->tty.term == NULL)
if (c->tty.term == NULL)
continue;
if (c->tty.flags & (TTY_FREEZE|TTY_BACKOFF))
continue;
cmdfn(&c->tty, ctx);
}