Fix a misplaced __NO_TLS locations, and change a GNUism to a C11ism for

consistency.

Approved by:	brooks (mentor)
This commit is contained in:
David Chisnall 2012-02-14 14:24:37 +00:00
parent 265f940acc
commit 7780c181c5
3 changed files with 6 additions and 4 deletions

View File

@ -86,10 +86,10 @@ typedef struct {
__BEGIN_DECLS
extern const _RuneLocale _DefaultRuneLocale;
extern const _RuneLocale *_CurrentRuneLocale;
extern const _Thread_local _RuneLocale *_ThreadRuneLocale;
#if defined(__NO_TLS) || defined(__RUNETYPE_INTERNAL)
extern const _RuneLocale *__getCurrentRuneLocale(void);
#else
extern const _Thread_local _RuneLocale *_ThreadRuneLocale;
static inline const _RuneLocale *__getCurrentRuneLocale(void)
{

View File

@ -183,6 +183,8 @@ __wrap_setrunelocale(const char *locale)
_CurrentRuneLocale = __xlocale_global_ctype.runes;
return (_LDP_LOADED);
}
#ifndef __NO_TLS
void
__set_thread_rune_locale(locale_t loc) {
@ -192,10 +194,11 @@ __set_thread_rune_locale(locale_t loc) {
_ThreadRuneLocale = XLOCALE_CTYPE(loc)->runes;
}
}
#endif
void *
__ctype_load(const char *locale, locale_t unused)
{
#ifndef __NO_TLS
struct xlocale_ctype *l = calloc(sizeof(struct xlocale_ctype), 1);
l->header.header.destructor = destruct_ctype;
if (__setrunelocale(l, locale))
@ -204,5 +207,4 @@ __ctype_load(const char *locale, locale_t unused)
return NULL;
}
return l;
#endif
}

View File

@ -183,7 +183,7 @@ extern int __has_thread_locale;
* The per-thread locale. Avoids the need to use pthread lookup functions when
* getting the per-thread locale.
*/
extern __thread locale_t __thread_locale;
extern _Thread_local locale_t __thread_locale;
/**
* Returns the current locale for this thread, or the global locale if none is