You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.4 KiB
33 lines
1.4 KiB
8 months ago
|
From a0b52398692f3e4bda18520db9e2397f7b2c80dd Mon Sep 17 00:00:00 2001
|
||
|
From: Benjamin Robin <dev@benjarobin.fr>
|
||
|
Date: Sun, 3 May 2020 18:37:21 +0200
|
||
|
Subject: [PATCH] journald: Increase stdout buffer size sooner, when almost
|
||
|
full
|
||
|
|
||
|
If the previous received buffer length is almost equal to the allocated
|
||
|
buffer size, before this change the next read can only receive a couple
|
||
|
of bytes (in the worst case only 1 byte), which is not efficient.
|
||
|
|
||
|
(cherry picked from commit 034e9719ac1ba88a36b05da38c7aa98761d42c77)
|
||
|
|
||
|
Related: #2029426
|
||
|
---
|
||
|
src/journal/journald-stream.c | 4 ++--
|
||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/src/journal/journald-stream.c b/src/journal/journald-stream.c
|
||
|
index 302a82d3d7..c8de984335 100644
|
||
|
--- a/src/journal/journald-stream.c
|
||
|
+++ b/src/journal/journald-stream.c
|
||
|
@@ -507,8 +507,8 @@ static int stdout_stream_process(sd_event_source *es, int fd, uint32_t revents,
|
||
|
goto terminate;
|
||
|
}
|
||
|
|
||
|
- /* If the buffer is full already (discounting the extra NUL we need), add room for another 1K */
|
||
|
- if (s->length + 1 >= s->allocated) {
|
||
|
+ /* If the buffer is almost full, add room for another 1K */
|
||
|
+ if (s->length + 512 >= s->allocated) {
|
||
|
if (!GREEDY_REALLOC(s->buffer, s->allocated, s->length + 1 + 1024)) {
|
||
|
log_oom();
|
||
|
goto terminate;
|