Sync OpenBSD patchset 745:

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:
Tiago Cunha
2010-08-11 22:16:04 +00:00
parent 5e9429e2d6
commit 761bd3c9e3
4 changed files with 60 additions and 43 deletions

6
tty.c
View File

@ -1,4 +1,4 @@
/* $Id: tty.c,v 1.192 2010-06-06 00:30:34 tcunha Exp $ */
/* $Id: tty.c,v 1.193 2010-08-11 22:16:04 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -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);
}