From: Frederic Lecaille Date: Wed, 8 Jul 2026 15:14:54 +0000 (+0200) Subject: MINOR: haload: move statistics header printing to mtask_cb X-Git-Tag: v3.5-dev2~3 X-Git-Url: http://git.kaiwu.me/postgresql/log/contrib/$%7BGITURL%7D/static/gitweb.js?a=commitdiff_plain;h=0792e211e32dfe21b465b611be68c5f174d32ebb;p=haproxy.git MINOR: haload: move statistics header printing to mtask_cb Move the header printing logic from hld_init to mtask_cb using a static flag. This ensures the header is displayed only when the main task starts processing, avoiding issues where the header might be printed before other haproxy initialization messages or unexpected early exits. --- diff --git a/src/haload.c b/src/haload.c index 17cefa961..d0a644bba 100644 --- a/src/haload.c +++ b/src/haload.c @@ -747,10 +747,28 @@ void update_throttle() /* main task */ static struct task *mtask_cb(struct task *t, void *context, unsigned int state) { + static int header_printed; + TRACE_ENTER(HLD_EV_MAIN_TASK); gettimeofday(&hld_now, NULL); + if (!header_printed) { + header_printed = 1; + if (arg_long >= 2) + printf("#_____time conns tot_conn tot_req tot_bytes" + " err thr cps rps Bps bps ttfb(us) ttlb(us)"); + else if (arg_long) + printf("# time conns tot_conn tot_req tot_bytes" + " err cps rps Bps bps ttfb ttlb"); + else + printf("# time conns tot_conn tot_req tot_bytes" + " err cps rps bps ttfb"); + if (arg_hscd) + printf(" 1xx 2xx 3xx 4xx 5xx"); + putchar('\n'); + } + update_throttle(); if (tick_is_expired(mtask.show_time, now_ms)) { hld_summary(); @@ -1809,19 +1827,6 @@ static int hld_init(void) goto leave; } - if (arg_long >= 2) - printf("#_____time conns tot_conn tot_req tot_bytes" - " err thr cps rps Bps bps ttfb(us) ttlb(us)"); - else if (arg_long) - printf("# time conns tot_conn tot_req tot_bytes" - " err cps rps Bps bps ttfb ttlb"); - else - printf("# time conns tot_conn tot_req tot_bytes" - " err cps rps bps ttfb"); - if (arg_hscd) - printf(" 1xx 2xx 3xx 4xx 5xx"); - putchar('\n'); - mtask.t->process = mtask_cb; mtask.t->state |= TASK_RT; mtask.t->expire = TICK_ETERNITY;