journald: Increase stdout buffer size sooner, when almost full
authorBenjamin Robin <dev@benjarobin.fr>
Sun, 3 May 2020 16:37:21 +0000 (18:37 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 31 May 2020 05:05:12 +0000 (07:05 +0200)
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)

src/journal/journald-stream.c

index ec6dad62e83942d592c53c6e572b35cc3478007d..ad90062176846e7f7a07bc64df067d77b3ec97d8 100644 (file)
@@ -512,8 +512,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;