[BACK]Return to server-client.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Diff for /src/usr.bin/tmux/server-client.c between version 1.63 and 1.64

version 1.63, 2012/01/21 08:40:09 version 1.64, 2012/01/21 23:51:34
Line 561 
Line 561 
         c->flags &= ~CLIENT_EXIT;          c->flags &= ~CLIENT_EXIT;
 }  }
   
 /*  
  * Check if the client should backoff. During backoff, data from external  
  * programs is not written to the terminal. When the existing data drains, the  
  * client is redrawn.  
  *  
  * There are two backoff phases - both the tty and client have backoff flags -  
  * the first to allow existing data to drain and the latter to ensure backoff  
  * is disabled until the redraw has finished and prevent the redraw triggering  
  * another backoff.  
  */  
 void  
 server_client_check_backoff(struct client *c)  
 {  
         struct tty      *tty = &c->tty;  
         size_t           used;  
   
         used = EVBUFFER_LENGTH(tty->event->output);  
   
         /*  
          * If in the second backoff phase (redrawing), don't check backoff  
          * until the redraw has completed (or enough of it to drop below the  
          * backoff threshold).  
          */  
         if (c->flags & CLIENT_BACKOFF) {  
                 if (used > BACKOFF_THRESHOLD)  
                         return;  
                 c->flags &= ~CLIENT_BACKOFF;  
                 return;  
         }  
   
         /* Once drained, allow data through again and schedule redraw. */  
         if (tty->flags & TTY_BACKOFF) {  
                 if (used != 0)  
                         return;  
                 tty->flags &= ~TTY_BACKOFF;  
                 c->flags |= (CLIENT_BACKOFF|CLIENT_REDRAWWINDOW|CLIENT_STATUS);  
                 return;  
         }  
   
         /* If too much data, start backoff. */  
         if (used > BACKOFF_THRESHOLD)  
                 tty->flags |= TTY_BACKOFF;  
 }  
   
 /* Check for client redraws. */  /* Check for client redraws. */
 void  void
 server_client_check_redraw(struct client *c)  server_client_check_redraw(struct client *c)

Legend:
Removed from v.1.63  
changed lines
  Added in v.1.64