From 8e851c1e8c8f92da41d44e15e0c75777e4d1110e Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Tue, 3 Mar 2015 16:41:59 -0500 Subject: [PATCH] libgit2_shutdown: free TLS data (win32) Free TLS data on thread exit (win32) --- src/global.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/global.c b/src/global.c index 2f31c7de4..1f3432d09 100644 --- a/src/global.c +++ b/src/global.c @@ -270,6 +270,17 @@ git_global_st *git__global_state(void) return ptr; } +BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, LPVOID reserved) +{ + if (reason == DLL_THREAD_DETACH) { + void *ptr = TlsGetValue(_tls_index); + git__global_state_cleanup(ptr); + git__free(ptr); + } + + return TRUE; +} + #elif defined(GIT_THREADS) && defined(_POSIX_THREADS) static pthread_key_t _tls_key;