locale.cc (locale::_S_initialize): Use __gthread_active_p.
authorBenjamin Kosnik <bkoz@redhat.com>
Thu, 2 Oct 2003 19:02:58 +0000 (19:02 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Thu, 2 Oct 2003 19:02:58 +0000 (19:02 +0000)
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

libstdc++-v3/ChangeLog
libstdc++-v3/src/locale.cc

index 59b6bff..7224004 100644 (file)
@@ -1,5 +1,10 @@
 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.
 
index b37b30c..1ba83d1 100644 (file)
@@ -385,11 +385,14 @@ namespace std
   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
@@ -472,11 +475,14 @@ namespace std
   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;
   }