Made the debugging G_TRYLOCK call also work for compilers with funnt
authorSebastian Wilhelmi <wilhelmi@ira.uka.de>
Wed, 19 Apr 2000 09:29:19 +0000 (09:29 +0000)
committerSebastian Wilhelmi <wilhelmi@src.gnome.org>
Wed, 19 Apr 2000 09:29:19 +0000 (09:29 +0000)
2000-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

* glib.h (G_TRYLOCK): Made the debugging G_TRYLOCK call also work
for compilers with funnt G_STMT_(START|END) macros.

* tests/thread-test.c: Implemented a check for that.

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.h
glib/glib.h
tests/thread-test.c

index bfb2bed..e32a0fb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2000-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
+       * glib.h (G_TRYLOCK): Made the debugging G_TRYLOCK call also work
+       for compilers with funnt G_STMT_(START|END) macros.
+
+       * tests/thread-test.c: Implemented a check for that.
+
        * gutils.c (g_getenv): Changed the win32 part of this function to
        be thread safe and to make the returned environment string
        persistent to match the UN*X behavior. This is again a response to
index bfb2bed..e32a0fb 100644 (file)
@@ -1,5 +1,10 @@
 2000-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
+       * glib.h (G_TRYLOCK): Made the debugging G_TRYLOCK call also work
+       for compilers with funnt G_STMT_(START|END) macros.
+
+       * tests/thread-test.c: Implemented a check for that.
+
        * gutils.c (g_getenv): Changed the win32 part of this function to
        be thread safe and to make the returned environment string
        persistent to match the UN*X behavior. This is again a response to
index bfb2bed..e32a0fb 100644 (file)
@@ -1,5 +1,10 @@
 2000-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
+       * glib.h (G_TRYLOCK): Made the debugging G_TRYLOCK call also work
+       for compilers with funnt G_STMT_(START|END) macros.
+
+       * tests/thread-test.c: Implemented a check for that.
+
        * gutils.c (g_getenv): Changed the win32 part of this function to
        be thread safe and to make the returned environment string
        persistent to match the UN*X behavior. This is again a response to
index bfb2bed..e32a0fb 100644 (file)
@@ -1,5 +1,10 @@
 2000-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
+       * glib.h (G_TRYLOCK): Made the debugging G_TRYLOCK call also work
+       for compilers with funnt G_STMT_(START|END) macros.
+
+       * tests/thread-test.c: Implemented a check for that.
+
        * gutils.c (g_getenv): Changed the win32 part of this function to
        be thread safe and to make the returned environment string
        persistent to match the UN*X behavior. This is again a response to
index bfb2bed..e32a0fb 100644 (file)
@@ -1,5 +1,10 @@
 2000-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
+       * glib.h (G_TRYLOCK): Made the debugging G_TRYLOCK call also work
+       for compilers with funnt G_STMT_(START|END) macros.
+
+       * tests/thread-test.c: Implemented a check for that.
+
        * gutils.c (g_getenv): Changed the win32 part of this function to
        be thread safe and to make the returned environment string
        persistent to match the UN*X behavior. This is again a response to
index bfb2bed..e32a0fb 100644 (file)
@@ -1,5 +1,10 @@
 2000-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
+       * glib.h (G_TRYLOCK): Made the debugging G_TRYLOCK call also work
+       for compilers with funnt G_STMT_(START|END) macros.
+
+       * tests/thread-test.c: Implemented a check for that.
+
        * gutils.c (g_getenv): Changed the win32 part of this function to
        be thread safe and to make the returned environment string
        persistent to match the UN*X behavior. This is again a response to
index bfb2bed..e32a0fb 100644 (file)
@@ -1,5 +1,10 @@
 2000-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
+       * glib.h (G_TRYLOCK): Made the debugging G_TRYLOCK call also work
+       for compilers with funnt G_STMT_(START|END) macros.
+
+       * tests/thread-test.c: Implemented a check for that.
+
        * gutils.c (g_getenv): Changed the win32 part of this function to
        be thread safe and to make the returned environment string
        persistent to match the UN*X behavior. This is again a response to
index bfb2bed..e32a0fb 100644 (file)
@@ -1,5 +1,10 @@
 2000-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
+       * glib.h (G_TRYLOCK): Made the debugging G_TRYLOCK call also work
+       for compilers with funnt G_STMT_(START|END) macros.
+
+       * tests/thread-test.c: Implemented a check for that.
+
        * gutils.c (g_getenv): Changed the win32 part of this function to
        be thread safe and to make the returned environment string
        persistent to match the UN*X behavior. This is again a response to
diff --git a/glib.h b/glib.h
index 6c13c11..49c8fb6 100644 (file)
--- a/glib.h
+++ b/glib.h
@@ -3152,12 +3152,11 @@ extern void glib_dummy_decl (void);
                #name);                                            \
        g_static_mutex_unlock (&G_LOCK_NAME (name));               \
      }G_STMT_END
-#    define G_TRYLOCK(name)            G_STMT_START{             \
-        g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,                          \
+#    define G_TRYLOCK(name)                                      \
+        (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,                 \
               "file %s: line %d (%s): try locking: %s ",         \
               __FILE__,        __LINE__, G_GNUC_PRETTY_FUNCTION, \
-               #name);                                            \
-     }G_STMT_END,      g_static_mutex_trylock (&G_LOCK_NAME (name))
+               #name), g_static_mutex_trylock (&G_LOCK_NAME (name)))
 #  else         /* !G_DEBUG_LOCKS */
 #    define G_LOCK(name) g_static_mutex_lock      (&G_LOCK_NAME (name)) 
 #    define G_UNLOCK(name) g_static_mutex_unlock   (&G_LOCK_NAME (name))
index 6c13c11..49c8fb6 100644 (file)
@@ -3152,12 +3152,11 @@ extern void glib_dummy_decl (void);
                #name);                                            \
        g_static_mutex_unlock (&G_LOCK_NAME (name));               \
      }G_STMT_END
-#    define G_TRYLOCK(name)            G_STMT_START{             \
-        g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,                          \
+#    define G_TRYLOCK(name)                                      \
+        (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,                 \
               "file %s: line %d (%s): try locking: %s ",         \
               __FILE__,        __LINE__, G_GNUC_PRETTY_FUNCTION, \
-               #name);                                            \
-     }G_STMT_END,      g_static_mutex_trylock (&G_LOCK_NAME (name))
+               #name), g_static_mutex_trylock (&G_LOCK_NAME (name)))
 #  else         /* !G_DEBUG_LOCKS */
 #    define G_LOCK(name) g_static_mutex_lock      (&G_LOCK_NAME (name)) 
 #    define G_UNLOCK(name) g_static_mutex_unlock   (&G_LOCK_NAME (name))
index 2cf30f0..1d203df 100644 (file)
@@ -4,12 +4,14 @@
 
 static GMutex* test_g_mutex_mutex = NULL;
 static guint test_g_mutex_int = 0;
+G_LOCK_DEFINE_STATIC (test_g_mutex);
 
 static void
 test_g_mutex_thread (gpointer data)
 {
   g_assert (GPOINTER_TO_INT (data) == 42);
   g_assert (g_mutex_trylock (test_g_mutex_mutex) == FALSE);
+  g_assert (G_TRYLOCK (test_g_mutex) == FALSE);
   g_mutex_lock (test_g_mutex_mutex);
   g_assert (test_g_mutex_int == 42);
   g_mutex_unlock (test_g_mutex_mutex);
@@ -22,11 +24,13 @@ test_g_mutex (void)
   test_g_mutex_mutex = g_mutex_new ();
 
   g_assert (g_mutex_trylock (test_g_mutex_mutex));
+  g_assert (G_TRYLOCK (test_g_mutex));
   thread = g_thread_create (test_g_mutex_thread, 
                            GINT_TO_POINTER (42),
                            0, TRUE, TRUE, G_THREAD_PRIORITY_NORMAL);
   g_usleep (G_MICROSEC);
   test_g_mutex_int = 42;
+  G_UNLOCK (test_g_mutex);
   g_mutex_unlock (test_g_mutex_mutex);
   g_thread_join (thread);
   g_mutex_free (test_g_mutex_mutex);