From 709b3db941d4e4dd4613618d893f6bcb46ddac02 Mon Sep 17 00:00:00 2001 From: Aurelien DARRAGON Date: Mon, 22 Jul 2024 15:24:26 +0200 Subject: [PATCH] MINOR: sink: add processed events counter in sft Add a new struct member to sft structure named e_processed in order to track the total number of events processed by sft applets. sink_forward_oc_io_handler() and sink_forward_io_handler() now make use of ring_dispatch_messages() optional value added in the previous commit in order to increase the number of processed events. --- include/haproxy/sink-t.h | 1 + src/sink.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/include/haproxy/sink-t.h b/include/haproxy/sink-t.h index d5e1cec57..990aa72d6 100644 --- a/include/haproxy/sink-t.h +++ b/include/haproxy/sink-t.h @@ -40,6 +40,7 @@ struct sink_forward_target { struct server *srv; // used server struct appctx *appctx; // appctx of current session size_t ofs; // ring buffer reader offset + size_t e_processed; // processed events struct sink *sink; // the associated sink struct sink_forward_target *next; __decl_thread(HA_SPINLOCK_T lock); // lock to protect current struct diff --git a/src/sink.c b/src/sink.c index 29b68a018..16597b211 100644 --- a/src/sink.c +++ b/src/sink.c @@ -353,6 +353,7 @@ static void _sink_forward_io_handler(struct appctx *appctx, struct sink *sink = sft->sink; struct ring *ring = sink->ctx.ring; size_t ofs, last_ofs; + size_t processed; int ret = 0; if (unlikely(se_fl_test(appctx->sedesc, (SE_FL_EOS|SE_FL_ERROR)))) { @@ -383,7 +384,8 @@ static void _sink_forward_io_handler(struct appctx *appctx, MT_LIST_DELETE(&appctx->wait_entry); ret = ring_dispatch_messages(ring, appctx, &sft->ofs, &last_ofs, 0, - msg_handler, NULL); + msg_handler, &processed); + sft->e_processed += processed; if (ret) { /* let's be woken up once new data arrive */