From: Lennart Poettering Date: Fri, 14 Sep 2007 21:05:47 +0000 (+0000) Subject: explicitly destory TLS data before destroying TLS X-Git-Tag: 1.0_branch~2762^2~1^2~149 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f0b9dce32e4c5d77f57364ccdc7795f828f7f6a0;p=profile%2Fivi%2Fpulseaudio.git explicitly destory TLS data before destroying TLS git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1821 fefdeb5f-60dc-0310-8127-8f9354f1896f --- diff --git a/src/pulsecore/thread.h b/src/pulsecore/thread.h index 4a2b1bb..0c6c859 100644 --- a/src/pulsecore/thread.h +++ b/src/pulsecore/thread.h @@ -70,8 +70,14 @@ void *pa_tls_set(pa_tls *t, void *userdata); } \ static void name##_tls_destructor(void) PA_GCC_DESTRUCTOR; \ static void name##_tls_destructor(void) { \ - if (name##_tls.tls) \ - pa_tls_free(name##_tls.tls); \ + if (!name##_tls.tls) \ + return; \ + if (free_cb) { \ + void *p; \ + if ((p = pa_tls_get(name##_tls.tls))) \ + free_cb(p); \ + } \ + pa_tls_free(name##_tls.tls); \ } \ static inline void* name##_tls_get(void) { \ return pa_tls_get(name##_tls_obj()); \