diff options
author | Jeff Hostetler <jeffhost@microsoft.com> | 2022-10-24 15:41:05 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-10-24 21:45:26 +0200 |
commit | 24a4c45da9e1255df43a87bec1f646b1efa69209 (patch) | |
tree | 349f564bf5bac27bc6b2049194bb17b606eee449 /trace2/tr2_tls.c | |
parent | trace2: improve thread-name documentation in the thread-context (diff) | |
download | git-24a4c45da9e1255df43a87bec1f646b1efa69209.tar.xz git-24a4c45da9e1255df43a87bec1f646b1efa69209.zip |
trace2: convert ctx.thread_name from strbuf to pointer
Convert the `tr2tls_thread_ctx.thread_name` field from a `strbuf`
to a "const char*" pointer.
The `thread_name` field is a constant string that is constructed when
the context is created. Using a (non-const) `strbuf` structure for it
caused some confusion in the past because it implied that someone
could rename a thread after it was created. That usage was not
intended. Change it to a const pointer to make the intent more clear.
Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'trace2/tr2_tls.c')
-rw-r--r-- | trace2/tr2_tls.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/trace2/tr2_tls.c b/trace2/tr2_tls.c index 4f7c516ecb..3a67532aae 100644 --- a/trace2/tr2_tls.c +++ b/trace2/tr2_tls.c @@ -35,6 +35,7 @@ struct tr2tls_thread_ctx *tr2tls_create_self(const char *thread_base_name, uint64_t us_thread_start) { struct tr2tls_thread_ctx *ctx = xcalloc(1, sizeof(*ctx)); + struct strbuf buf = STRBUF_INIT; /* * Implicitly "tr2tls_push_self()" to capture the thread's start @@ -47,12 +48,13 @@ struct tr2tls_thread_ctx *tr2tls_create_self(const char *thread_base_name, ctx->thread_id = tr2tls_locked_increment(&tr2_next_thread_id); - strbuf_init(&ctx->thread_name, 0); + strbuf_init(&buf, 0); if (ctx->thread_id) - strbuf_addf(&ctx->thread_name, "th%02d:", ctx->thread_id); - strbuf_addstr(&ctx->thread_name, thread_base_name); - if (ctx->thread_name.len > TR2_MAX_THREAD_NAME) - strbuf_setlen(&ctx->thread_name, TR2_MAX_THREAD_NAME); + strbuf_addf(&buf, "th%02d:", ctx->thread_id); + strbuf_addstr(&buf, thread_base_name); + if (buf.len > TR2_MAX_THREAD_NAME) + strbuf_setlen(&buf, TR2_MAX_THREAD_NAME); + ctx->thread_name = strbuf_detach(&buf, NULL); pthread_setspecific(tr2tls_key, ctx); @@ -95,7 +97,7 @@ void tr2tls_unset_self(void) pthread_setspecific(tr2tls_key, NULL); - strbuf_release(&ctx->thread_name); + free((char *)ctx->thread_name); free(ctx->array_us_start); free(ctx); } @@ -113,7 +115,7 @@ void tr2tls_pop_self(void) struct tr2tls_thread_ctx *ctx = tr2tls_get_self(); if (!ctx->nr_open_regions) - BUG("no open regions in thread '%s'", ctx->thread_name.buf); + BUG("no open regions in thread '%s'", ctx->thread_name); ctx->nr_open_regions--; } |