2003-10-02 Benjamin Kosnik <bkoz@redhat.com>
* src/locale.cc (locale::_S_initialize): Use __gthread_active_p.
(locale::facet::_S_get_c_locale): Same.
From-SVN: r72045
2003-10-02 Benjamin Kosnik <bkoz@redhat.com>
+ * src/locale.cc (locale::_S_initialize): Use __gthread_active_p.
+ (locale::facet::_S_get_c_locale): Same.
+
+2003-10-02 Benjamin Kosnik <bkoz@redhat.com>
+
* config/linker-map.gnu: Export _S_get_c_locale instead of
_S_c_locale object.
locale::_S_initialize()
{
#ifdef __GTHREADS
- __gthread_once(&_S_once, _S_initialize_once);
-#else
- if (!_S_classic)
- _S_initialize_once();
+ if (__gthread_active_p())
+ __gthread_once(&_S_once, _S_initialize_once);
+ else
#endif
+ {
+ if (!_S_classic)
+ _S_initialize_once();
+ }
}
void
locale::facet::_S_get_c_locale()
{
#ifdef __GHTREADS
- __gthread_once(&_S_once, _S_initialize_once);
-#else
- if (!_S_c_locale)
- _S_initialize_once();
+ if (__gthread_active_p())
+ __gthread_once(&_S_once, _S_initialize_once);
+ else
#endif
+ {
+ if (!_S_c_locale)
+ _S_initialize_once();
+ }
return _S_c_locale;
}