# HG changeset patch # User Vladimir Nadvornik # Date 1302359926 -7200 # Node ID 1160a9de93c2c767b1cb71ccde1dc24d2b85b33e # Parent a8cdf1b5af6f508960611d4ea5d62986c5396c0f fixed using DEBUG_N from multiple threads diff -r a8cdf1b5af6f -r 1160a9de93c2 src/debug.c --- a/src/debug.c Thu Dec 16 22:26:36 2010 +0100 +++ b/src/debug.c Sat Apr 09 16:38:46 2011 +0200 @@ -17,7 +17,7 @@ #include - +GMutex *debug_mutex; /* * Logging functions */ diff -r a8cdf1b5af6f -r 1160a9de93c2 src/debug.h --- a/src/debug.h Thu Dec 16 22:26:36 2010 +0100 +++ b/src/debug.h Sat Apr 09 16:38:46 2011 +0200 @@ -17,6 +17,8 @@ #define DOMAIN_DEBUG "debug" #define DOMAIN_INFO "info" +extern GMutex *debug_mutex; + gint log_domain_printf(const gchar *domain, const gchar *format, ...) G_GNUC_PRINTF(2, 3); #define log_printf(...) log_domain_printf(DOMAIN_INFO, __VA_ARGS__) @@ -37,9 +39,11 @@ gint debug_level = get_debug_level(); \ if (debug_level >= (n)) \ { \ + g_mutex_lock(debug_mutex); \ if (debug_level != 1) log_domain_printf(DOMAIN_DEBUG, "%s:%d: ", __FILE__, __LINE__); \ log_domain_printf(DOMAIN_DEBUG, __VA_ARGS__); \ log_domain_printf(DOMAIN_DEBUG, "\n"); \ + g_mutex_unlock(debug_mutex); \ } \ } while (0) diff -r a8cdf1b5af6f -r 1160a9de93c2 src/main.c --- a/src/main.c Thu Dec 16 22:26:36 2010 +0100 +++ b/src/main.c Sat Apr 09 16:38:46 2011 +0200 @@ -740,6 +740,8 @@ g_thread_init(NULL); gdk_threads_init(); gdk_threads_enter(); + debug_mutex = g_mutex_new(); + #endif /* init execution time counter (debug only) */