summaryrefslogtreecommitdiffstats
path: root/control.c
diff options
context:
space:
mode:
authornicm <nicm>2020-06-12 08:35:01 +0000
committernicm <nicm>2020-06-12 08:35:01 +0000
commitd8d77691043a5ecd504fb2a82e4e312d947ab19f (patch)
tree04e145e66dfbf6d4c7c278569cdeb479cc299239 /control.c
parent4c3bdc5a3619c2ea7d9b130efeebf12bf08a1fb2 (diff)
Check if a pane needs to be paused when output is written rather than
just when it is queued.
Diffstat (limited to 'control.c')
-rw-r--r--control.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/control.c b/control.c
index 8ff7736f..05093d94 100644
--- a/control.c
+++ b/control.c
@@ -569,6 +569,13 @@ control_write_pending(struct client *c, struct control_pane *cp, size_t limit)
}
while (used != limit && !TAILQ_EMPTY(&cp->blocks)) {
+ if (control_check_age(c, wp, cp)) {
+ if (message != NULL)
+ evbuffer_free(message);
+ message = NULL;
+ break;
+ }
+
cb = TAILQ_FIRST(&cp->blocks);
if (cb->t < t)
age = t - cb->t;