mirror of
https://github.com/git/git.git
synced 2024-11-23 18:05:29 +08:00
trace2: destroy context stored in thread-local storage
Each thread may have a specific context in the trace2 subsystem that we set up via thread-local storage. We do not set up a destructor for this data though, which means that the context data will leak. Plug this leak by installing a destructor. This leak is exposed by t7814, but plugging it alone does not make the whole test suite pass. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
7f795a1715
commit
64d9adafba
@ -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 =
|
||||
|
Loading…
Reference in New Issue
Block a user