Made recursive mutexes also work when the thread system is not (yet)
authorSebastian Wilhelmi <wilhelmi@ira.uka.de>
Mon, 13 Nov 2000 12:50:16 +0000 (12:50 +0000)
committerSebastian Wilhelmi <wilhelmi@src.gnome.org>
Mon, 13 Nov 2000 12:50:16 +0000 (12:50 +0000)
2000-11-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

* gthread.c (g_static_rec_mutex_*): Made recursive mutexes also
work when the thread system is not (yet) initialized.

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
glib/gthread.c
gthread.c

index 446be0f..465e222 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2000-11-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gthread.c (g_static_rec_mutex_*): Made recursive mutexes also
+       work when the thread system is not (yet) initialized.
+
 Sun Nov 12 18:34:32 2000  Owen Taylor  <otaylor@redhat.com>
 
        * gconvert.[ch]: Create wrapper functions for iconv()
index 446be0f..465e222 100644 (file)
@@ -1,3 +1,8 @@
+2000-11-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gthread.c (g_static_rec_mutex_*): Made recursive mutexes also
+       work when the thread system is not (yet) initialized.
+
 Sun Nov 12 18:34:32 2000  Owen Taylor  <otaylor@redhat.com>
 
        * gconvert.[ch]: Create wrapper functions for iconv()
index 446be0f..465e222 100644 (file)
@@ -1,3 +1,8 @@
+2000-11-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gthread.c (g_static_rec_mutex_*): Made recursive mutexes also
+       work when the thread system is not (yet) initialized.
+
 Sun Nov 12 18:34:32 2000  Owen Taylor  <otaylor@redhat.com>
 
        * gconvert.[ch]: Create wrapper functions for iconv()
index 446be0f..465e222 100644 (file)
@@ -1,3 +1,8 @@
+2000-11-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gthread.c (g_static_rec_mutex_*): Made recursive mutexes also
+       work when the thread system is not (yet) initialized.
+
 Sun Nov 12 18:34:32 2000  Owen Taylor  <otaylor@redhat.com>
 
        * gconvert.[ch]: Create wrapper functions for iconv()
index 446be0f..465e222 100644 (file)
@@ -1,3 +1,8 @@
+2000-11-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gthread.c (g_static_rec_mutex_*): Made recursive mutexes also
+       work when the thread system is not (yet) initialized.
+
 Sun Nov 12 18:34:32 2000  Owen Taylor  <otaylor@redhat.com>
 
        * gconvert.[ch]: Create wrapper functions for iconv()
index 446be0f..465e222 100644 (file)
@@ -1,3 +1,8 @@
+2000-11-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gthread.c (g_static_rec_mutex_*): Made recursive mutexes also
+       work when the thread system is not (yet) initialized.
+
 Sun Nov 12 18:34:32 2000  Owen Taylor  <otaylor@redhat.com>
 
        * gconvert.[ch]: Create wrapper functions for iconv()
index 446be0f..465e222 100644 (file)
@@ -1,3 +1,8 @@
+2000-11-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gthread.c (g_static_rec_mutex_*): Made recursive mutexes also
+       work when the thread system is not (yet) initialized.
+
 Sun Nov 12 18:34:32 2000  Owen Taylor  <otaylor@redhat.com>
 
        * gconvert.[ch]: Create wrapper functions for iconv()
index 446be0f..465e222 100644 (file)
@@ -1,3 +1,8 @@
+2000-11-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gthread.c (g_static_rec_mutex_*): Made recursive mutexes also
+       work when the thread system is not (yet) initialized.
+
 Sun Nov 12 18:34:32 2000  Owen Taylor  <otaylor@redhat.com>
 
        * gconvert.[ch]: Create wrapper functions for iconv()
index 034e771..8f03a29 100644 (file)
@@ -166,6 +166,9 @@ g_static_rec_mutex_lock (GStaticRecMutex* mutex)
 
   g_return_if_fail (mutex);
 
+  if (!g_thread_supported ())
+    return;
+
   G_THREAD_UF (thread_self, (&self));
 
   if (g_system_thread_equal (self, mutex->owner))
@@ -185,6 +188,9 @@ g_static_rec_mutex_trylock (GStaticRecMutex* mutex)
 
   g_return_val_if_fail (mutex, FALSE);
 
+  if (!g_thread_supported ())
+    return TRUE;
+
   G_THREAD_UF (thread_self, (&self));
 
   if (g_system_thread_equal (self, mutex->owner))
@@ -206,6 +212,9 @@ g_static_rec_mutex_unlock (GStaticRecMutex* mutex)
 {
   g_return_if_fail (mutex);
 
+  if (!g_thread_supported ())
+    return;
+
   if (mutex->depth > 1)
     {
       mutex->depth--;
@@ -221,6 +230,9 @@ g_static_rec_mutex_lock_full   (GStaticRecMutex *mutex,
 {
   g_return_if_fail (mutex);
 
+  if (!g_thread_supported ())
+    return;
+
   g_static_mutex_lock (&mutex->mutex);
   G_THREAD_UF (thread_self, (&mutex->owner));
   mutex->depth = depth;
@@ -229,10 +241,15 @@ g_static_rec_mutex_lock_full   (GStaticRecMutex *mutex,
 guint    
 g_static_rec_mutex_unlock_full (GStaticRecMutex *mutex)
 {
-  gint depth = mutex->depth;
+  gint depth;
 
   g_return_val_if_fail (mutex, 0);
 
+  if (!g_thread_supported ())
+    return 1;
+
+  depth = mutex->depth;
+
   g_system_thread_assign (mutex->owner, zero_thread);
   mutex->depth = 0;
   g_static_mutex_unlock (&mutex->mutex);
index 034e771..8f03a29 100644 (file)
--- a/gthread.c
+++ b/gthread.c
@@ -166,6 +166,9 @@ g_static_rec_mutex_lock (GStaticRecMutex* mutex)
 
   g_return_if_fail (mutex);
 
+  if (!g_thread_supported ())
+    return;
+
   G_THREAD_UF (thread_self, (&self));
 
   if (g_system_thread_equal (self, mutex->owner))
@@ -185,6 +188,9 @@ g_static_rec_mutex_trylock (GStaticRecMutex* mutex)
 
   g_return_val_if_fail (mutex, FALSE);
 
+  if (!g_thread_supported ())
+    return TRUE;
+
   G_THREAD_UF (thread_self, (&self));
 
   if (g_system_thread_equal (self, mutex->owner))
@@ -206,6 +212,9 @@ g_static_rec_mutex_unlock (GStaticRecMutex* mutex)
 {
   g_return_if_fail (mutex);
 
+  if (!g_thread_supported ())
+    return;
+
   if (mutex->depth > 1)
     {
       mutex->depth--;
@@ -221,6 +230,9 @@ g_static_rec_mutex_lock_full   (GStaticRecMutex *mutex,
 {
   g_return_if_fail (mutex);
 
+  if (!g_thread_supported ())
+    return;
+
   g_static_mutex_lock (&mutex->mutex);
   G_THREAD_UF (thread_self, (&mutex->owner));
   mutex->depth = depth;
@@ -229,10 +241,15 @@ g_static_rec_mutex_lock_full   (GStaticRecMutex *mutex,
 guint    
 g_static_rec_mutex_unlock_full (GStaticRecMutex *mutex)
 {
-  gint depth = mutex->depth;
+  gint depth;
 
   g_return_val_if_fail (mutex, 0);
 
+  if (!g_thread_supported ())
+    return 1;
+
+  depth = mutex->depth;
+
   g_system_thread_assign (mutex->owner, zero_thread);
   mutex->depth = 0;
   g_static_mutex_unlock (&mutex->mutex);