mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-15 00:41:02 +00:00
More contributed BSD enhancements
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@919 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -708,6 +708,17 @@ static inline int ast_select(int nfds, fd_set *rfds, fd_set *wfds, fd_set *efds,
|
||||
#endif
|
||||
}
|
||||
|
||||
#if !defined(ast_strdupa) && defined(__GNUC__)
|
||||
# define ast_strdupa(s) \
|
||||
(__extension__ \
|
||||
({ \
|
||||
__const char *__old = (s); \
|
||||
size_t __len = strlen (__old) + 1; \
|
||||
char *__new = (char *) __builtin_alloca (__len); \
|
||||
(char *) memcpy (__new, __old, __len); \
|
||||
}))
|
||||
#endif
|
||||
|
||||
#ifdef DO_CRASH
|
||||
#define CRASH do { fprintf(stderr, "!! Forcing immediate crash a-la abort !!\n"); *((int *)0) = 0; } while(0)
|
||||
#else
|
||||
|
@@ -29,10 +29,17 @@
|
||||
// #define AST_MUTEX_KIND PTHREAD_MUTEX_RECURSIVE_NP
|
||||
#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
|
||||
#define AST_MUTEX_INITIALIZER PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
|
||||
#else
|
||||
#ifdef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
|
||||
#define AST_MUTEX_INITIALIZER PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
|
||||
#else
|
||||
#define AST_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
|
||||
#endif
|
||||
#endif
|
||||
#ifdef PTHREAD_MUTEX_ERRORCHECK_NP
|
||||
#define AST_MUTEX_KIND PTHREAD_MUTEX_ERRORCHECK_NP
|
||||
#else
|
||||
#define AST_MUTEX_INITIALIZER PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
|
||||
#define AST_MUTEX_KIND PTHREAD_MUTEX_RECURSIVE_NP
|
||||
#define AST_MUTEX_KIND PTHREAD_MUTEX_ERRORCHECK
|
||||
#endif
|
||||
|
||||
struct mutex_info {
|
||||
@@ -96,7 +103,11 @@ static inline int __ast_pthread_mutex_unlock(char *filename, int lineno, char *f
|
||||
#else
|
||||
|
||||
#define AST_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
|
||||
#ifdef PTHREAD_MUTEX_FAST_NP
|
||||
#define AST_MUTEX_KIND PTHREAD_MUTEX_FAST_NP
|
||||
#else
|
||||
#define AST_MUTEX_KIND PTHREAD_NORMAL
|
||||
#endif
|
||||
|
||||
#define ast_pthread_mutex_init(mutex) pthread_mutex_init(mutex, NULL)
|
||||
#define ast_pthread_mutex_lock pthread_mutex_lock
|
||||
|
Reference in New Issue
Block a user