mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-20 11:43:52 +00:00
Fix build on Solaris
Reported by: snuffy Patch by: ys Closes issue #11143 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@88210 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -675,11 +675,11 @@ static inline int ast_mutex_init(ast_mutex_t *pmutex)
|
|||||||
int res;
|
int res;
|
||||||
pthread_mutexattr_t attr;
|
pthread_mutexattr_t attr;
|
||||||
|
|
||||||
#ifdef AST_MUTEX_INIT_W_CONSTRUCTORS
|
#ifdef BSD
|
||||||
/* Check for already init'ed mutex for BSD */
|
/* Check for already init'ed mutex for BSD */
|
||||||
if (*pmutex != PTHREAD_MUTEX_INITIALIZER)
|
if (*pmutex != ((pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER))
|
||||||
return 0;
|
return 0;
|
||||||
#endif
|
#endif /* BSD */
|
||||||
pthread_mutexattr_init(&attr);
|
pthread_mutexattr_init(&attr);
|
||||||
pthread_mutexattr_settype(&attr, AST_MUTEX_KIND);
|
pthread_mutexattr_settype(&attr, AST_MUTEX_KIND);
|
||||||
|
|
||||||
@@ -692,42 +692,42 @@ static inline int ast_mutex_init(ast_mutex_t *pmutex)
|
|||||||
|
|
||||||
static inline int ast_mutex_unlock(ast_mutex_t *pmutex)
|
static inline int ast_mutex_unlock(ast_mutex_t *pmutex)
|
||||||
{
|
{
|
||||||
#ifdef AST_MUTEX_INIT_W_CONSTRUCTORS
|
#ifdef BSD
|
||||||
/* Check for uninitialized mutex for BSD */
|
/* Check for uninitialized mutex for BSD */
|
||||||
if (*pmutex == PTHREAD_MUTEX_INITIALIZER) {
|
if (*pmutex == ((pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER)) {
|
||||||
ast_mutex_init(pmutex);
|
ast_mutex_init(pmutex);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif /* AST_MUTEX_INIT_W_CONSTRUCTORS */
|
#endif /* BSD */
|
||||||
return pthread_mutex_unlock(pmutex);
|
return pthread_mutex_unlock(pmutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int ast_mutex_destroy(ast_mutex_t *pmutex)
|
static inline int ast_mutex_destroy(ast_mutex_t *pmutex)
|
||||||
{
|
{
|
||||||
#ifdef AST_MUTEX_INIT_W_CONSTRUCTORS
|
#ifdef BSD
|
||||||
if (*pmutex == PTHREAD_MUTEX_INITIALIZER)
|
if (*pmutex == ((pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER))
|
||||||
return 0;
|
return 0;
|
||||||
#endif /* AST_MUTEX_INIT_W_CONSTRUCTORS */
|
#endif /* BSD */
|
||||||
return pthread_mutex_destroy(pmutex);
|
return pthread_mutex_destroy(pmutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int ast_mutex_lock(ast_mutex_t *pmutex)
|
static inline int ast_mutex_lock(ast_mutex_t *pmutex)
|
||||||
{
|
{
|
||||||
#ifdef AST_MUTEX_INIT_W_CONSTRUCTORS
|
#ifdef BSD
|
||||||
/* Check for uninitialized mutex for BSD */
|
/* Check for uninitialized mutex for BSD */
|
||||||
if (*pmutex == PTHREAD_MUTEX_INITIALIZER)
|
if (*pmutex == ((pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER))
|
||||||
ast_mutex_init(pmutex);
|
ast_mutex_init(pmutex);
|
||||||
#endif /* AST_MUTEX_INIT_W_CONSTRUCTORS */
|
#endif /* BSD */
|
||||||
__MTX_PROF(pmutex);
|
__MTX_PROF(pmutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int ast_mutex_trylock(ast_mutex_t *pmutex)
|
static inline int ast_mutex_trylock(ast_mutex_t *pmutex)
|
||||||
{
|
{
|
||||||
#ifdef AST_MUTEX_INIT_W_CONSTRUCTORS
|
#ifdef BSD
|
||||||
/* Check for uninitialized mutex for BSD */
|
/* Check for uninitialized mutex for BSD */
|
||||||
if (*pmutex == PTHREAD_MUTEX_INITIALIZER)
|
if (*pmutex == ((pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER))
|
||||||
ast_mutex_init(pmutex);
|
ast_mutex_init(pmutex);
|
||||||
#endif /* AST_MUTEX_INIT_W_CONSTRUCTORS */
|
#endif /* BSD */
|
||||||
return pthread_mutex_trylock(pmutex);
|
return pthread_mutex_trylock(pmutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1037,11 +1037,11 @@ static inline int ast_rwlock_init(ast_rwlock_t *prwlock)
|
|||||||
int res;
|
int res;
|
||||||
pthread_rwlockattr_t attr;
|
pthread_rwlockattr_t attr;
|
||||||
|
|
||||||
#ifdef AST_MUTEX_INIT_W_CONSTRUCTORS
|
#ifdef BSD
|
||||||
/* Check for already init'ed lock for BSD */
|
/* Check for already init'ed lock for BSD */
|
||||||
if (*prwlock != ((ast_rwlock_t) AST_RWLOCK_INIT_VALUE))
|
if (*prwlock != ((ast_rwlock_t) AST_RWLOCK_INIT_VALUE))
|
||||||
return 0;
|
return 0;
|
||||||
#endif /* AST_MUTEX_INIT_W_CONSTRUCTORS */
|
#endif /* BSD */
|
||||||
pthread_rwlockattr_init(&attr);
|
pthread_rwlockattr_init(&attr);
|
||||||
|
|
||||||
#ifdef HAVE_PTHREAD_RWLOCK_PREFER_WRITER_NP
|
#ifdef HAVE_PTHREAD_RWLOCK_PREFER_WRITER_NP
|
||||||
@@ -1055,67 +1055,67 @@ static inline int ast_rwlock_init(ast_rwlock_t *prwlock)
|
|||||||
|
|
||||||
static inline int ast_rwlock_destroy(ast_rwlock_t *prwlock)
|
static inline int ast_rwlock_destroy(ast_rwlock_t *prwlock)
|
||||||
{
|
{
|
||||||
#ifdef AST_MUTEX_INIT_W_CONSTRUCTORS
|
#ifdef BSD
|
||||||
/* Check for uninitialized mutex for BSD */
|
/* Check for uninitialized mutex for BSD */
|
||||||
if (*prwlock == ((ast_rwlock_t) AST_RWLOCK_INIT_VALUE))
|
if (*prwlock == ((ast_rwlock_t) AST_RWLOCK_INIT_VALUE))
|
||||||
return 0;
|
return 0;
|
||||||
#endif /* AST_MUTEX_INIT_W_CONSTRUCTORS */
|
#endif /* BSD */
|
||||||
return pthread_rwlock_destroy(prwlock);
|
return pthread_rwlock_destroy(prwlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int ast_rwlock_unlock(ast_rwlock_t *prwlock)
|
static inline int ast_rwlock_unlock(ast_rwlock_t *prwlock)
|
||||||
{
|
{
|
||||||
#ifdef AST_MUTEX_INIT_W_CONSTRUCTORS
|
#ifdef BSD
|
||||||
/* Check for uninitialized lock for BSD */
|
/* Check for uninitialized lock for BSD */
|
||||||
if (*prwlock == ((ast_rwlock_t) AST_RWLOCK_INIT_VALUE)) {
|
if (*prwlock == ((ast_rwlock_t) AST_RWLOCK_INIT_VALUE)) {
|
||||||
ast_rwlock_init(prwlock);
|
ast_rwlock_init(prwlock);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif /* AST_MUTEX_INIT_W_CONSTRUCTORS */
|
#endif /* BSD */
|
||||||
return pthread_rwlock_unlock(prwlock);
|
return pthread_rwlock_unlock(prwlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int ast_rwlock_rdlock(ast_rwlock_t *prwlock)
|
static inline int ast_rwlock_rdlock(ast_rwlock_t *prwlock)
|
||||||
{
|
{
|
||||||
#ifdef AST_MUTEX_INIT_W_CONSTRUCTORS
|
#ifdef BSD
|
||||||
/* Check for uninitialized lock for BSD */
|
/* Check for uninitialized lock for BSD */
|
||||||
if (*prwlock == ((ast_rwlock_t) AST_RWLOCK_INIT_VALUE)) {
|
if (*prwlock == ((ast_rwlock_t) AST_RWLOCK_INIT_VALUE)) {
|
||||||
ast_rwlock_init(prwlock);
|
ast_rwlock_init(prwlock);
|
||||||
}
|
}
|
||||||
#endif /* AST_MUTEX_INIT_W_CONSTRUCTORS */
|
#endif /* BSD */
|
||||||
return pthread_rwlock_rdlock(prwlock);
|
return pthread_rwlock_rdlock(prwlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int ast_rwlock_tryrdlock(ast_rwlock_t *prwlock)
|
static inline int ast_rwlock_tryrdlock(ast_rwlock_t *prwlock)
|
||||||
{
|
{
|
||||||
#ifdef AST_MUTEX_INIT_W_CONSTRUCTORS
|
#ifdef BSD
|
||||||
/* Check for uninitialized lock for BSD */
|
/* Check for uninitialized lock for BSD */
|
||||||
if (*prwlock == ((ast_rwlock_t) AST_RWLOCK_INIT_VALUE)) {
|
if (*prwlock == ((ast_rwlock_t) AST_RWLOCK_INIT_VALUE)) {
|
||||||
ast_rwlock_init(prwlock);
|
ast_rwlock_init(prwlock);
|
||||||
}
|
}
|
||||||
#endif /* AST_MUTEX_INIT_W_CONSTRUCTORS */
|
#endif /* BSD */
|
||||||
return pthread_rwlock_tryrdlock(prwlock);
|
return pthread_rwlock_tryrdlock(prwlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int ast_rwlock_wrlock(ast_rwlock_t *prwlock)
|
static inline int ast_rwlock_wrlock(ast_rwlock_t *prwlock)
|
||||||
{
|
{
|
||||||
#ifdef AST_MUTEX_INIT_W_CONSTRUCTORS
|
#ifdef BSD
|
||||||
/* Check for uninitialized lock for BSD */
|
/* Check for uninitialized lock for BSD */
|
||||||
if (*prwlock == ((ast_rwlock_t) AST_RWLOCK_INIT_VALUE)) {
|
if (*prwlock == ((ast_rwlock_t) AST_RWLOCK_INIT_VALUE)) {
|
||||||
ast_rwlock_init(prwlock);
|
ast_rwlock_init(prwlock);
|
||||||
}
|
}
|
||||||
#endif /* AST_MUTEX_INIT_W_CONSTRUCTORS */
|
#endif /* BSD */
|
||||||
return pthread_rwlock_wrlock(prwlock);
|
return pthread_rwlock_wrlock(prwlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int ast_rwlock_trywrlock(ast_rwlock_t *prwlock)
|
static inline int ast_rwlock_trywrlock(ast_rwlock_t *prwlock)
|
||||||
{
|
{
|
||||||
#ifdef AST_MUTEX_INIT_W_CONSTRUCTORS
|
#ifdef BSD
|
||||||
/* Check for uninitialized lock for BSD */
|
/* Check for uninitialized lock for BSD */
|
||||||
if (*prwlock == ((ast_rwlock_t) AST_RWLOCK_INIT_VALUE)) {
|
if (*prwlock == ((ast_rwlock_t) AST_RWLOCK_INIT_VALUE)) {
|
||||||
ast_rwlock_init(prwlock);
|
ast_rwlock_init(prwlock);
|
||||||
}
|
}
|
||||||
#endif /* AST_MUTEX_INIT_W_CONSTRUCTORS */
|
#endif /* BSD */
|
||||||
return pthread_rwlock_trywrlock(prwlock);
|
return pthread_rwlock_trywrlock(prwlock);
|
||||||
}
|
}
|
||||||
#endif /* !DEBUG_THREADS */
|
#endif /* !DEBUG_THREADS */
|
||||||
|
Reference in New Issue
Block a user