aboutsummaryrefslogtreecommitdiffstats
path: root/trace2/tr2_tls.c
diff options
context:
space:
mode:
Diffstat (limited to 'trace2/tr2_tls.c')
-rw-r--r--trace2/tr2_tls.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/trace2/tr2_tls.c b/trace2/tr2_tls.c
index 4f75392952..7b023c1bfc 100644
--- a/trace2/tr2_tls.c
+++ b/trace2/tr2_tls.c
@@ -152,11 +152,19 @@ uint64_t tr2tls_absolute_elapsed(uint64_t us)
return us - tr2tls_us_start_process;
}
+static void tr2tls_key_destructor(void *payload)
+{
+ struct tr2tls_thread_ctx *ctx = payload;
+ free((char *)ctx->thread_name);
+ free(ctx->array_us_start);
+ free(ctx);
+}
+
void tr2tls_init(void)
{
tr2tls_start_process_clock();
- pthread_key_create(&tr2tls_key, NULL);
+ pthread_key_create(&tr2tls_key, tr2tls_key_destructor);
init_recursive_mutex(&tr2tls_mutex);
tr2tls_thread_main =