MINOR: sink: now report the number of dropped events on output
The principle is that when emitting a message, if some dropped events
were logged, we first attempt to report this counter before going
further. This is done under an exclusive lock while all logs are
produced under a shared lock. This ensures that the dropped line is
accurately reported and doesn't accidently arrive after a later
event.
diff --git a/include/types/sink.h b/include/types/sink.h
index 5465ca6..e36a296 100644
--- a/include/types/sink.h
+++ b/include/types/sink.h
@@ -60,9 +60,9 @@
uint8_t syslog_minlvl; // used by syslog & short formats
uint32_t maxlen; // max message length (truncated above)
struct {
+ __decl_hathreads(HA_RWLOCK_T lock); // shared/excl for dropped
struct ring *ring; // used by ring buffer and STRM sender
unsigned int dropped; // dropped events since last one.
- __decl_hathreads(HA_RWLOCK_T lock); // used by some types
int fd; // fd num for FD type sink
} ctx;
};