]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 177732 via svnmerge from
authorTilghman Lesher <tilghman@meg.abyt.es>
Fri, 20 Feb 2009 21:34:28 +0000 (21:34 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Fri, 20 Feb 2009 21:34:28 +0000 (21:34 +0000)
https://origsvn.digium.com/svn/asterisk/trunk

................
  r177732 | tilghman | 2009-02-20 15:25:37 -0600 (Fri, 20 Feb 2009) | 10 lines

  Merged revisions 177701 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.4

  ........
    r177701 | tilghman | 2009-02-20 15:15:01 -0600 (Fri, 20 Feb 2009) | 3 lines

    This exception does not appear to still be true for Solaris 10, and OpenSolaris definitely needs it to be removed.
    Fixed for snuff-home on -dev channel.
  ........
................

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@177760 65c4cc65-6c06-0410-ace0-fbb531ad65f3

include/asterisk/threadstorage.h

index c86ff04d2a51bcfc9df481b2e934df2c32d1f691..3b9e6b4721c8824a63efdd097bb787408eea838b 100644 (file)
@@ -60,12 +60,6 @@ struct ast_threadstorage {
        int (*custom_init)(void *); /*!< Custom initialization function specific to the object */
 };
 
-#ifdef SOLARIS
-#define THREADSTORAGE_ONCE_INIT {PTHREAD_ONCE_INIT}
-#else
-#define THREADSTORAGE_ONCE_INIT PTHREAD_ONCE_INIT
-#endif
-
 #if defined(DEBUG_THREADLOCALS)
 void __ast_threadstorage_object_add(void *key, size_t len, const char *file, const char *function, unsigned int line);
 void __ast_threadstorage_object_remove(void *key);
@@ -105,32 +99,32 @@ void __ast_threadstorage_object_replace(void *key_old, void *key_new, size_t len
  */
 #if !defined(DEBUG_THREADLOCALS)
 #define AST_THREADSTORAGE_CUSTOM(name, c_init, c_cleanup)      \
-static void __init_##name(void);                               \
-static struct ast_threadstorage name = {                       \
-       .once = THREADSTORAGE_ONCE_INIT,                        \
-       .key_init = __init_##name,                              \
-       .custom_init = c_init,                                  \
-};                                                             \
-static void __init_##name(void)                                        \
-{                                                              \
-       pthread_key_create(&(name).key, c_cleanup);             \
+static void __init_##name(void);                \
+static struct ast_threadstorage name = {        \
+       .once = PTHREAD_ONCE_INIT,                  \
+       .key_init = __init_##name,                  \
+       .custom_init = c_init,                      \
+};                                              \
+static void __init_##name(void)                 \
+{                                               \
+       pthread_key_create(&(name).key, c_cleanup); \
 }
 #else /* defined(DEBUG_THREADLOCALS) */
-#define AST_THREADSTORAGE_CUSTOM(name, c_init, c_cleanup)      \
-static void __init_##name(void);                               \
-static struct ast_threadstorage name = {                       \
-       .once = THREADSTORAGE_ONCE_INIT,                        \
-       .key_init = __init_##name,                              \
-       .custom_init = c_init,                                  \
-};                                                             \
-static void __cleanup_##name(void *data)                       \
-{                                                              \
-       __ast_threadstorage_object_remove(data);                \
-       c_cleanup(data);                                        \
-}                                                              \
-static void __init_##name(void)                                        \
-{                                                              \
-       pthread_key_create(&(name).key, __cleanup_##name);      \
+#define AST_THREADSTORAGE_CUSTOM_SCOPE(name, c_init, c_cleanup, scope) \
+static void __init_##name(void);                \
+static struct ast_threadstorage name = {        \
+       .once = PTHREAD_ONCE_INIT,                  \
+       .key_init = __init_##name,                  \
+       .custom_init = c_init,                      \
+};                                              \
+static void __cleanup_##name(void *data)        \
+{                                               \
+       __ast_threadstorage_object_remove(data);    \
+       c_cleanup(data);                            \
+}                                               \
+static void __init_##name(void)                 \
+{                                               \
+       pthread_key_create(&(name).key, __cleanup_##name); \
 }
 #endif /* defined(DEBUG_THREADLOCALS) */