about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-09-05 17:21:42 -0400
committerJune McEnroe <june@causal.agency>2021-09-05 17:21:42 -0400
commitdec38ac592b058a057bdf423cface765f57829e0 (patch)
tree66bc98c4b4e878f73e663167a38ec21f79f47d1e
parentUse EX_USAGE for all local configuration errors (diff)
downloadpounce-dec38ac592b058a057bdf423cface765f57829e0.tar.gz
pounce-dec38ac592b058a057bdf423cface765f57829e0.zip
Avoid logging that a new consumer dropped messages
A new consumer is obviously expected to have dropped a huge number
of messages.
-rw-r--r--ring.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/ring.c b/ring.c
index 735d780..5aa3e93 100644
--- a/ring.c
+++ b/ring.c
@@ -112,10 +112,12 @@ size_t ringDiff(size_t consumer) {
 const char *ringPeek(struct timeval *time, size_t consumer) {
 	if (!ringDiff(consumer)) return NULL;
 	if (ringDiff(consumer) > ring.len) {
-		warnx(
-			"consumer %s dropped %zu messages",
-			consumers.ptr[consumer].name, ringDiff(consumer) - ring.len
-		);
+		if (consumers.ptr[consumer].pos) {
+			warnx(
+				"consumer %s dropped %zu messages",
+				consumers.ptr[consumer].name, ringDiff(consumer) - ring.len
+			);
+		}
 		consumers.ptr[consumer].pos = producer - ring.len;
 	}
 	size_t i = consumers.ptr[consumer].pos & (ring.len - 1);