make h_errno thread-local

the framework to do this always existed but it was deemed unnecessary
because the only [ex-]standard functions using h_errno were not
thread-safe anyway. however, some of the nonstandard res_* functions
are also supposed to set h_errno to indicate the cause of error, and
were unable to do so because it was not thread-safe. this change is a
prerequisite for fixing them.
This commit is contained in:
Rich Felker
2020-08-24 21:38:49 -04:00
parent 4d5786544b
commit 9d0b8b92a5
2 changed files with 3 additions and 4 deletions
+2 -4
View File
@@ -1,9 +1,7 @@
#include <netdb.h>
#undef h_errno
int h_errno;
#include "pthread_impl.h"
int *__h_errno_location(void)
{
return &h_errno;
return &__pthread_self()->h_errno_val;
}