fix stale locks left behind when pthread_create fails
[musl] / src / thread / pthread_mutex_init.c
index 6e23df1..a7ba39b 100644 (file)
@@ -1,8 +1,8 @@
 #include "pthread_impl.h"
 
-int pthread_mutex_init(pthread_mutex_t *m, const pthread_mutexattr_t *a)
+int pthread_mutex_init(pthread_mutex_t *restrict m, const pthread_mutexattr_t *restrict a)
 {
-       memset(m, 0, sizeof *m);
-       if (a) m->_m_type = *a & 3;
+       *m = (pthread_mutex_t){0};
+       if (a) m->_m_type = *a & 7;
        return 0;
 }