From 1383e5b64259c05b977442df2c473fa5931854a5 Mon Sep 17 00:00:00 2001 From: Sebastian Wilhelmi Date: Wed, 19 Apr 2000 09:29:19 +0000 Subject: [PATCH] Made the debugging G_TRYLOCK call also work for compilers with funnt 2000-04-19 Sebastian Wilhelmi * 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 | 5 +++++ ChangeLog.pre-2-0 | 5 +++++ ChangeLog.pre-2-10 | 5 +++++ ChangeLog.pre-2-12 | 5 +++++ ChangeLog.pre-2-2 | 5 +++++ ChangeLog.pre-2-4 | 5 +++++ ChangeLog.pre-2-6 | 5 +++++ ChangeLog.pre-2-8 | 5 +++++ glib.h | 7 +++---- glib/glib.h | 7 +++---- tests/thread-test.c | 4 ++++ 11 files changed, 50 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index bfb2bed48..e32a0fb13 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2000-04-19 Sebastian Wilhelmi + * 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/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index bfb2bed48..e32a0fb13 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,5 +1,10 @@ 2000-04-19 Sebastian Wilhelmi + * 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/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index bfb2bed48..e32a0fb13 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,10 @@ 2000-04-19 Sebastian Wilhelmi + * 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/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index bfb2bed48..e32a0fb13 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,5 +1,10 @@ 2000-04-19 Sebastian Wilhelmi + * 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/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index bfb2bed48..e32a0fb13 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,5 +1,10 @@ 2000-04-19 Sebastian Wilhelmi + * 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/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index bfb2bed48..e32a0fb13 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,5 +1,10 @@ 2000-04-19 Sebastian Wilhelmi + * 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/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index bfb2bed48..e32a0fb13 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,5 +1,10 @@ 2000-04-19 Sebastian Wilhelmi + * 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/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index bfb2bed48..e32a0fb13 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,5 +1,10 @@ 2000-04-19 Sebastian Wilhelmi + * 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 6c13c11b2..49c8fb69e 100644 --- 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)) diff --git a/glib/glib.h b/glib/glib.h index 6c13c11b2..49c8fb69e 100644 --- a/glib/glib.h +++ b/glib/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)) diff --git a/tests/thread-test.c b/tests/thread-test.c index 2cf30f01d..1d203df48 100644 --- a/tests/thread-test.c +++ b/tests/thread-test.c @@ -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);