From 060ae0b92db81f4cfe507d3d0be82d5baac2e14f Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Fri, 7 Jan 2022 00:44:41 +0100 Subject: logger: wait a very short time for a whole line --- rvnit.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/rvnit.c b/rvnit.c index 70dace8..fa15889 100644 --- a/rvnit.c +++ b/rvnit.c @@ -356,6 +356,16 @@ logger_loop(void* ignored) continue; } + if (rd < (int)sizeof buf && buf[rd - 1] != '\n') { + // sometimes processes use multiple write calls + // for one line, give them 25msec to do try to + // get the whole line. + nanosleep(&(struct timespec){0, 25000000}, 0); + ssize_t rd2 = read(fds[j].fd, buf + rd, sizeof buf - rd); + if (rd2 > 0) + rd += rd2; + } + const char *sv = ""; long pid = -1; -- cgit 1.4.1