# HG changeset patch # User Vladimir Nadvornik # Date 1302359926 -7200 # Node ID e2b999fb2a103273ccc8fd04beb643340af89e0e # Parent c7309e94a9a6051015a8d98c56822475b15ef1d9 fixed using DEBUG_N from multiple threads diff -r c7309e94a9a6 -r e2b999fb2a10 src/debug.c --- a/src/debug.c Sat Apr 09 16:07:31 2011 +0200 +++ b/src/debug.c Sat Apr 09 16:38:46 2011 +0200 @@ -17,7 +17,7 @@ #include - +GMutex *debug_mutex; /* * Logging functions */ diff -r c7309e94a9a6 -r e2b999fb2a10 src/debug.h --- a/src/debug.h Sat Apr 09 16:07:31 2011 +0200 +++ 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 c7309e94a9a6 -r e2b999fb2a10 src/main.c --- a/src/main.c Sat Apr 09 16:07:31 2011 +0200 +++ 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) */