41 ABTI_UB_ASSERT(ABTI_initialized());
42 ABTI_UB_ASSERT(newattr);
44 ABTI_mutex_attr *p_newattr;
46 int abt_errno =
ABTU_malloc(
sizeof(ABTI_mutex_attr), (
void **)&p_newattr);
47 ABTI_CHECK_ERROR(abt_errno);
50 p_newattr->attrs = ABTI_MUTEX_ATTR_NONE;
53 *newattr = ABTI_mutex_attr_get_handle(p_newattr);
81 ABTI_UB_ASSERT(ABTI_initialized());
85 ABTI_mutex_attr *p_attr = ABTI_mutex_attr_get_ptr(h_attr);
86 ABTI_CHECK_NULL_MUTEX_ATTR_PTR(p_attr);
122 ABTI_UB_ASSERT(ABTI_initialized());
123 ABTI_UB_ASSERT_BOOL(recursive);
125 ABTI_mutex_attr *p_attr = ABTI_mutex_attr_get_ptr(attr);
126 ABTI_CHECK_NULL_MUTEX_ATTR_PTR(p_attr);
130 p_attr->attrs |= ABTI_MUTEX_ATTR_RECURSIVE;
132 p_attr->attrs &= ~ABTI_MUTEX_ATTR_RECURSIVE;
164 ABTI_UB_ASSERT(ABTI_initialized());
165 ABTI_UB_ASSERT(recursive);
167 ABTI_mutex_attr *p_attr = ABTI_mutex_attr_get_ptr(attr);
168 ABTI_CHECK_NULL_MUTEX_ATTR_PTR(p_attr);
171 if (p_attr->attrs & ABTI_MUTEX_ATTR_RECURSIVE) {