+ lutex->mutexattr = malloc(sizeof(pthread_mutexattr_t));
+ lutex_assert(lutex->mutexattr != 0);
+
+ ret = pthread_mutexattr_init(lutex->mutexattr);
+ lutex_assert(ret == 0);
+
+ /* The default type of mutex is implementation dependent.
+ * We use PTHREAD_MUTEX_ERRORCHECK so that locking on mutexes
+ * locked by the same thread does not cause deadlocks. */
+ /* FIXME: pthread_mutexattr_settype is available on SUSv2 level
+ * implementations. Can be used without checking? */
+ ret = pthread_mutexattr_settype(lutex->mutexattr,
+ PTHREAD_MUTEX_ERRORCHECK);
+ lutex_assert(ret == 0);
+