]> code.delx.au - pulseaudio/blobdiff - src/pulsecore/thread.h
Create a new macro for checking compiler support for TLS.
[pulseaudio] / src / pulsecore / thread.h
index 0c6c859df030181866a2d9c339adfea2d2ce33ab..87e850d67eae41221c92c595c6655fd70d1695ad 100644 (file)
@@ -1,8 +1,6 @@
 #ifndef foopulsethreadhfoo
 #define foopulsethreadhfoo
 
-/* $Id$ */
-
 /***
   This file is part of PulseAudio.
 
@@ -70,12 +68,13 @@ void *pa_tls_set(pa_tls *t, void *userdata);
     }                                                                   \
     static void name##_tls_destructor(void) PA_GCC_DESTRUCTOR;          \
     static void name##_tls_destructor(void) {                           \
+        static void (*_free_cb)(void*) = free_cb;                       \
         if (!name##_tls.tls)                                            \
             return;                                                     \
-        if (free_cb) {                                                  \
+        if (_free_cb) {                                                 \
             void *p;                                                    \
             if ((p = pa_tls_get(name##_tls.tls)))                       \
-                free_cb(p);                                             \
+                _free_cb(p);                                            \
         }                                                               \
         pa_tls_free(name##_tls.tls);                                    \
     }                                                                   \
@@ -87,7 +86,7 @@ void *pa_tls_set(pa_tls *t, void *userdata);
     }                                                                   \
     struct __stupid_useless_struct_to_allow_trailing_semicolon
 
-#ifdef HAVE_TLS_BUILTIN
+#ifdef SUPPORT_TLS___THREAD
 /* An optimized version of the above that requires no dynamic
  * allocation if the compiler supports __thread */
 #define PA_STATIC_TLS_DECLARE_NO_FREE(name)                             \