From: Willy Tarreau Date: Thu, 18 Sep 2025 06:02:59 +0000 (+0200) Subject: MINOR: trace: don't call strlen() on the thread-id numeric encoding X-Git-Tag: v3.3-dev9~59 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=06fa9f717f4f17e3349ab73d9ac235742ba138be;p=thirdparty%2Fhaproxy.git MINOR: trace: don't call strlen() on the thread-id numeric encoding In __trace(), we're making an integer for the thread id but this one is passed through strlen() in the call to ist() because it's not a constant. We do know that it's exactly 3 chars long so we can manage this using ist2() and pass it the length instead in order to reduce the number of calls to strlen(). Also let's note that the thread number will no longer be numeric for thread numbers above 100. --- diff --git a/src/trace.c b/src/trace.c index b2d763ebf..0952ed29b 100644 --- a/src/trace.c +++ b/src/trace.c @@ -285,7 +285,7 @@ void __trace(enum trace_level level, uint64_t mask, struct trace_source *src, tnum[1] = '0' + tid % 10; tnum[2] = '|'; tnum[3] = 0; - line[words++] = ist(tnum); + line[words++] = ist2(tnum, 3); line[words++] = src->name; line[words++] = ist("|"); line[words++] = ist2("012345" + level, 1); // "0" to "5"