pthread: pthread_getattr_np must call pthread_attr_init().

Fix #15025

Change-Id: Ie0b91714d375d75170b54e81cb31cf18b106ecc1
Reviewed-on: https://review.haiku-os.org/c/1413
Reviewed-by: Adrien Destugues <[email protected]>
This commit is contained in:
Jérôme Duval
2019-04-24 18:43:37 +00:00
committed by waddlesplash
parent c9ac7e4a9e
commit 0e4b529df5
@@ -18,6 +18,7 @@
#include <thread_defs.h>
int __pthread_attr_get_np(pthread_t thread, pthread_attr_t *_attr);
int __pthread_getattr_np(pthread_t thread, pthread_attr_t *_attr);
@@ -241,7 +242,7 @@ pthread_attr_setstack(pthread_attr_t *_attr, void *stackaddr,
int
__pthread_getattr_np(pthread_t thread, pthread_attr_t *_attr)
__pthread_attr_get_np(pthread_t thread, pthread_attr_t *_attr)
{
pthread_attr *attr;
status_t status;
@@ -268,6 +269,16 @@ __pthread_getattr_np(pthread_t thread, pthread_attr_t *_attr)
}
B_DEFINE_WEAK_ALIAS(__pthread_getattr_np, pthread_getattr_np);
B_DEFINE_WEAK_ALIAS(__pthread_getattr_np, pthread_attr_get_np);
int
__pthread_getattr_np(pthread_t thread, pthread_attr_t *_attr)
{
int err = pthread_attr_init(_attr);
if (err == 0)
err = __pthread_attr_get_np(thread, _attr);
return err;
}
B_DEFINE_WEAK_ALIAS(__pthread_getattr_np, pthread_getattr_np);
B_DEFINE_WEAK_ALIAS(__pthread_attr_get_np, pthread_attr_get_np);