aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2009-02-20 21:34:28 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2009-02-20 21:34:28 +0000
commitc9f4de6313ac72839f13ee3374a68bfd29ca41cd (patch)
tree34d57bf88a690ebf4d4ff38ff736ae6e121d5f34 /include
parentf8e44a9881b33ce61e0e8992c6ca73fd70ad247c (diff)
Merged revisions 177732 via svnmerge from
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: http://svn.digium.com/svn/asterisk/branches/1.6.1@177760 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include')
-rw-r--r--include/asterisk/threadstorage.h54
1 files changed, 24 insertions, 30 deletions
diff --git a/include/asterisk/threadstorage.h b/include/asterisk/threadstorage.h
index c86ff04d2..3b9e6b472 100644
--- a/include/asterisk/threadstorage.h
+++ b/include/asterisk/threadstorage.h
@@ -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) */