@@ -61,48 +61,19 @@ typedef pthread_mutex_t opal_thread_internal_mutex_t;
61
61
# define OPAL_THREAD_INTERNAL_RECURSIVE_MUTEX_INITIALIZER PTHREAD_RECURSIVE_MUTEX_INITIALIZER
62
62
#endif
63
63
64
+
65
+ int opal_thread_internal_mutex_init_recursive (opal_thread_internal_mutex_t * p_mutex );
66
+
64
67
static inline int opal_thread_internal_mutex_init (opal_thread_internal_mutex_t * p_mutex ,
65
68
bool recursive )
66
69
{
67
70
int ret ;
68
- #if OPAL_ENABLE_DEBUG
69
- if (recursive ) {
70
- pthread_mutexattr_t mutex_attr ;
71
- ret = pthread_mutexattr_init (& mutex_attr );
72
- if (0 != ret )
73
- return OPAL_ERR_IN_ERRNO ;
74
- ret = pthread_mutexattr_settype (& mutex_attr , PTHREAD_MUTEX_RECURSIVE );
75
- if (0 != ret ) {
76
- ret = pthread_mutexattr_destroy (& mutex_attr );
77
- assert (0 == ret );
78
- return OPAL_ERR_IN_ERRNO ;
79
- }
80
- ret = pthread_mutex_init (p_mutex , & mutex_attr );
81
- if (0 != ret ) {
82
- ret = pthread_mutexattr_destroy (& mutex_attr );
83
- assert (0 == ret );
84
- return OPAL_ERR_IN_ERRNO ;
85
- }
86
- ret = pthread_mutexattr_destroy (& mutex_attr );
87
- assert (0 == ret );
88
- } else {
89
- ret = pthread_mutex_init (p_mutex , NULL );
90
- }
91
- #else
92
71
if (recursive ) {
93
- pthread_mutexattr_t mutex_attr ;
94
- ret = pthread_mutexattr_init (& mutex_attr );
95
- if (0 != ret ) {
96
- return OPAL_ERR_IN_ERRNO ;
97
- }
98
- pthread_mutexattr_settype (& mutex_attr , PTHREAD_MUTEX_RECURSIVE );
99
- ret = pthread_mutex_init (p_mutex , & mutex_attr );
100
- pthread_mutexattr_destroy (& mutex_attr );
72
+ return opal_thread_internal_mutex_init_recursive (p_mutex );
101
73
} else {
102
74
ret = pthread_mutex_init (p_mutex , NULL );
75
+ return 0 == ret ? OPAL_SUCCESS : OPAL_ERR_IN_ERRNO ;
103
76
}
104
- #endif
105
- return 0 == ret ? OPAL_SUCCESS : OPAL_ERR_IN_ERRNO ;
106
77
}
107
78
108
79
static inline void opal_thread_internal_mutex_lock (opal_thread_internal_mutex_t * p_mutex )
0 commit comments