There is no main thread in RTEMS

The resolv module has a questionable fall back strategy on error.
This commit is contained in:
Sebastian Huber
2013-09-20 16:08:34 +02:00
parent 937461c950
commit 83cb10f952
6 changed files with 2 additions and 32 deletions

View File

@@ -50,14 +50,9 @@ name##_keyinit(void) \
static int \
name##_getstate(struct name##_state **p) \
{ \
static struct name##_state st; \
static pthread_once_t keyinit = PTHREAD_ONCE_INIT; \
int rv; \
\
if (!__isthreaded || _pthread_main_np() != 0) { \
*p = &st; \
return (0); \
} \
rv = _pthread_once(&keyinit, name##_keyinit); \
if (rv != 0) \
return (rv); \

View File

@@ -31,7 +31,6 @@
#include <stdio.h> /* XXX: for FILE */
#define NETDB_THREAD_ALLOC(name) \
static struct name name; \
static thread_key_t name##_key; \
static once_t name##_init_once = ONCE_INITIALIZER; \
static int name##_thr_keycreated = 0; \
@@ -50,8 +49,6 @@ __##name##_init(void) \
{ \
struct name *he; \
\
if (thr_main() != 0) \
return (&name); \
if (thr_once(&name##_init_once, name##_keycreate) != 0 || \
!name##_thr_keycreated) \
return (NULL); \

View File

@@ -66,8 +66,10 @@ __res_state(void)
{
res_state statp;
#ifndef __rtems__
if (thr_main() != 0)
return (&_res);
#endif /* __rtems__ */
if (thr_once(&res_init_once, res_keycreate) != 0 ||
!res_thr_keycreated)