LibPthread: Fix broken EINVAL check in pthread_attr_setdetachstate()

Also fix up some misleading error messages in the 'tt' test program.
This commit is contained in:
Andreas Kling 2020-11-26 11:51:26 +01:00
parent a5e560ee49
commit ffa4405083
Notes: sideshowbarker 2024-07-19 01:15:30 +09:00
2 changed files with 4 additions and 4 deletions

View file

@ -278,7 +278,7 @@ int pthread_attr_setdetachstate(pthread_attr_t* attributes, int detach_state)
if (!attributes_impl)
return EINVAL;
if ((PTHREAD_CREATE_JOINABLE != detach_state) || PTHREAD_CREATE_DETACHED != detach_state)
if (detach_state != PTHREAD_CREATE_JOINABLE && detach_state != PTHREAD_CREATE_DETACHED)
return EINVAL;
attributes_impl->m_detach_state = detach_state;

View file

@ -130,14 +130,14 @@ int detached_test()
pthread_attr_t attributes;
int rc = pthread_attr_init(&attributes);
if (rc != 0) {
printf("pthread_attr_setdetachstate: %s\n", strerror(rc));
printf("pthread_attr_init: %s\n", strerror(rc));
return 1;
}
int detach_state = 99; // clearly invalid
rc = pthread_attr_getdetachstate(&attributes, &detach_state);
if (rc != 0) {
printf("pthread_attr_setdetachstate: %s\n", strerror(rc));
printf("pthread_attr_getdetachstate: %s\n", strerror(rc));
return 2;
}
printf("Default detach state: %s\n", detach_state == PTHREAD_CREATE_JOINABLE ? "joinable" : "detached");
@ -181,7 +181,7 @@ int detached_test()
rc = pthread_attr_destroy(&attributes);
if (rc != 0) {
printf("pthread_attr_setdetachstate: %s\n", strerror(rc));
printf("pthread_attr_destroy: %s\n", strerror(rc));
return 7;
}