Use another LOCK for g_prgname to avoid deadlocking. (#62606)
authorSebastian Wilhelmi <wilhelmi@ira.uka.de>
Fri, 19 Oct 2001 08:09:22 +0000 (08:09 +0000)
committerSebastian Wilhelmi <wilhelmi@src.gnome.org>
Fri, 19 Oct 2001 08:09:22 +0000 (08:09 +0000)
2001-10-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

* glib/gutils.c (g_set_prgname, g_get_prgname): Use another LOCK
for g_prgname to avoid deadlocking. (#62606)

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/gutils.c

index ada843a..6610160 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2001-10-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * glib/gutils.c (g_set_prgname, g_get_prgname): Use another LOCK
+       for g_prgname to avoid deadlocking. (#62606)
+
 2001-10-19  Tor Lillqvist  <tml@iki.fi>
 
        * configure.in: Check also ac_cv_sizeof___int64 when requiring a
index ada843a..6610160 100644 (file)
@@ -1,3 +1,8 @@
+2001-10-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * glib/gutils.c (g_set_prgname, g_get_prgname): Use another LOCK
+       for g_prgname to avoid deadlocking. (#62606)
+
 2001-10-19  Tor Lillqvist  <tml@iki.fi>
 
        * configure.in: Check also ac_cv_sizeof___int64 when requiring a
index ada843a..6610160 100644 (file)
@@ -1,3 +1,8 @@
+2001-10-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * glib/gutils.c (g_set_prgname, g_get_prgname): Use another LOCK
+       for g_prgname to avoid deadlocking. (#62606)
+
 2001-10-19  Tor Lillqvist  <tml@iki.fi>
 
        * configure.in: Check also ac_cv_sizeof___int64 when requiring a
index ada843a..6610160 100644 (file)
@@ -1,3 +1,8 @@
+2001-10-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * glib/gutils.c (g_set_prgname, g_get_prgname): Use another LOCK
+       for g_prgname to avoid deadlocking. (#62606)
+
 2001-10-19  Tor Lillqvist  <tml@iki.fi>
 
        * configure.in: Check also ac_cv_sizeof___int64 when requiring a
index ada843a..6610160 100644 (file)
@@ -1,3 +1,8 @@
+2001-10-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * glib/gutils.c (g_set_prgname, g_get_prgname): Use another LOCK
+       for g_prgname to avoid deadlocking. (#62606)
+
 2001-10-19  Tor Lillqvist  <tml@iki.fi>
 
        * configure.in: Check also ac_cv_sizeof___int64 when requiring a
index ada843a..6610160 100644 (file)
@@ -1,3 +1,8 @@
+2001-10-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * glib/gutils.c (g_set_prgname, g_get_prgname): Use another LOCK
+       for g_prgname to avoid deadlocking. (#62606)
+
 2001-10-19  Tor Lillqvist  <tml@iki.fi>
 
        * configure.in: Check also ac_cv_sizeof___int64 when requiring a
index ada843a..6610160 100644 (file)
@@ -1,3 +1,8 @@
+2001-10-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * glib/gutils.c (g_set_prgname, g_get_prgname): Use another LOCK
+       for g_prgname to avoid deadlocking. (#62606)
+
 2001-10-19  Tor Lillqvist  <tml@iki.fi>
 
        * configure.in: Check also ac_cv_sizeof___int64 when requiring a
index ada843a..6610160 100644 (file)
@@ -1,3 +1,8 @@
+2001-10-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * glib/gutils.c (g_set_prgname, g_get_prgname): Use another LOCK
+       for g_prgname to avoid deadlocking. (#62606)
+
 2001-10-19  Tor Lillqvist  <tml@iki.fi>
 
        * configure.in: Check also ac_cv_sizeof___int64 when requiring a
index b3bfa27..2699544 100644 (file)
@@ -1000,6 +1000,7 @@ g_get_tmp_dir (void)
   return g_tmp_dir;
 }
 
+G_LOCK_DEFINE (g_prgname);
 static gchar *g_prgname = NULL;
 
 gchar*
@@ -1007,9 +1008,9 @@ g_get_prgname (void)
 {
   gchar* retval;
 
-  G_LOCK (g_utils_global);
+  G_LOCK (g_prgname);
   retval = g_prgname;
-  G_UNLOCK (g_utils_global);
+  G_UNLOCK (g_prgname);
 
   return retval;
 }
@@ -1017,13 +1018,10 @@ g_get_prgname (void)
 void
 g_set_prgname (const gchar *prgname)
 {
-  gchar *c;
-    
-  G_LOCK (g_utils_global);
-  c = g_prgname;
+  G_LOCK (g_prgname);
+  g_free (g_prgname);
   g_prgname = g_strdup (prgname);
-  g_free (c);
-  G_UNLOCK (g_utils_global);
+  G_UNLOCK (g_prgname);
 }
 
 guint