diff options
author | Leah Neukirchen <leah@vuxu.org> | 2022-01-07 00:44:41 +0100 |
---|---|---|
committer | Leah Neukirchen <leah@vuxu.org> | 2022-01-07 00:44:41 +0100 |
commit | 060ae0b92db81f4cfe507d3d0be82d5baac2e14f (patch) | |
tree | 3e30ac0fe854b36023874b2788ddbadb30f6e53c | |
parent | 4486f6bda62aa2d478ff3240a50c017b98f6cd03 (diff) | |
download | rvnit-060ae0b92db81f4cfe507d3d0be82d5baac2e14f.tar.gz rvnit-060ae0b92db81f4cfe507d3d0be82d5baac2e14f.tar.xz rvnit-060ae0b92db81f4cfe507d3d0be82d5baac2e14f.zip |
logger: wait a very short time for a whole line
-rw-r--r-- | rvnit.c | 10 |
1 files changed, 10 insertions, 0 deletions
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 = "<unknown>"; long pid = -1; |