summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-09-16 18:12:40 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-09-16 18:12:40 +0000
commit17f7587fe8c34034d1cc1d22c7d8be15ef03afb3 (patch)
treea29647845b182a4efce71ac7ccf96b90e0255cf1 /src
parent1d03f2cb43dfafbf42b6beb1f7d0335a9448afbd (diff)
fix potential config mutex deadlock
Diffstat (limited to 'src')
-rw-r--r--src/gtk.suppression294
-rw-r--r--src/trg-client.c10
-rw-r--r--src/trg-valgrind.sh3
3 files changed, 301 insertions, 6 deletions
diff --git a/src/gtk.suppression b/src/gtk.suppression
new file mode 100644
index 0000000..2cea334
--- /dev/null
+++ b/src/gtk.suppression
@@ -0,0 +1,294 @@
+#
+# Valgrind suppression file for Gtk+ 2.12
+#
+# Format specification:
+# http://valgrind.org/docs/manual/manual-core.html#manual-core.suppress
+#
+
+#
+# glibc Ubuntu Edgy
+#
+
+{
+ libc: getpwnam_r
+ Memcheck:Addr4
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/tls/i686/cmov/libc-*.so
+ obj:/lib/ld-*.so
+ fun:__libc_dlopen_mode
+ fun:__nss_lookup_function
+ obj:/lib/tls/i686/cmov/libc-*.so
+ fun:__nss_passwd_lookup
+ fun:getpwnam_r
+ fun:g_get_any_init_do
+ fun:g_get_home_dir
+ fun:gtk_rc_add_initial_default_files
+ fun:_gtk_rc_init
+ fun:post_parse_hook
+ fun:g_option_context_parse
+ fun:gtk_parse_args
+ fun:gtk_init_check
+ fun:gtk_init
+}
+
+{
+ libc: getpwnam_r
+ Memcheck:Addr4
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/tls/i686/cmov/libc-*.so
+ obj:/lib/ld-*.so
+ fun:__libc_dlopen_mode
+ fun:__nss_lookup_function
+ obj:/lib/tls/i686/cmov/libc-*.so
+ fun:__nss_passwd_lookup
+ fun:getpwnam_r
+ fun:g_get_any_init_do
+ fun:g_get_home_dir
+ fun:gtk_rc_add_initial_default_files
+ fun:_gtk_rc_init
+ fun:post_parse_hook
+ fun:g_option_context_parse
+ fun:gtk_parse_args
+ fun:gtk_init_check
+ fun:gtk_init
+}
+
+{
+ libc: getpwnam_r
+ Memcheck:Addr4
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/tls/i686/cmov/libc-*.so
+ obj:/lib/ld-*.so
+ fun:__libc_dlopen_mode
+ fun:__nss_lookup_function
+ fun:__nss_next
+ fun:getpwnam_r
+ fun:g_get_any_init_do
+ fun:g_get_home_dir
+ fun:gtk_rc_add_initial_default_files
+ fun:_gtk_rc_init
+ fun:post_parse_hook
+ fun:g_option_context_parse
+ fun:gtk_parse_args
+ fun:gtk_init_check
+ fun:gtk_init
+}
+
+{
+ libc: getpwnam_r
+ Memcheck:Addr4
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/tls/i686/cmov/libc-*.so
+ obj:/lib/ld-*.so
+ fun:__libc_dlopen_mode
+ fun:__nss_lookup_function
+ fun:__nss_next
+ fun:getpwnam_r
+ fun:g_get_any_init_do
+ fun:g_get_home_dir
+ fun:gtk_rc_add_initial_default_files
+ fun:_gtk_rc_init
+ fun:post_parse_hook
+ fun:g_option_context_parse
+ fun:gtk_parse_args
+ fun:gtk_init_check
+ fun:gtk_init
+}
+
+#
+# glibc Ubuntu feisty
+#
+
+{
+ getpwnam_r
+ Memcheck:Leak
+ fun:malloc
+ obj:/lib/libc-2.5.so
+ fun:__nss_database_lookup
+ obj:*
+ obj:*
+ fun:getpwnam_r
+}
+
+#
+# X
+#
+
+{
+ XSupportsLocale
+ Memcheck:Addr4
+ obj:/lib/ld-*.so
+ obj:/lib/tls/i686/cmov/libdl-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/tls/i686/cmov/libdl-*.so
+ fun:dlopen
+ obj:/usr/lib/libX11.so.6.2.0
+ fun:_XlcDynamicLoad
+ fun:_XOpenLC
+ fun:_XlcCurrentLC
+ fun:XSupportsLocale
+ fun:_gdk_x11_initialize_locale
+ fun:_gdk_windowing_init
+ fun:gdk_pre_parse_libgtk_only
+ fun:pre_parse_hook
+ fun:g_option_context_parse
+ fun:gtk_parse_args
+ fun:gtk_init_check
+ fun:gtk_init
+ fun:main
+}
+
+
+{
+ Xcursor
+ Memcheck:Leak
+ fun:malloc
+ obj:/usr/lib/libXcursor.so.1.0.2
+ obj:/usr/lib/libXcursor.so.1.0.2
+ fun:XcursorXcFileLoadImages
+ fun:XcursorFileLoadImages
+ fun:XcursorLibraryLoadImages
+ fun:XcursorShapeLoadImages
+ fun:XcursorTryShapeCursor
+ fun:XCreateGlyphCursor
+ fun:XCreateFontCursor
+ fun:gdk_cursor_new_for_display
+}
+
+{
+ XcursorGetTheme
+ Memcheck:Leak
+ fun:malloc
+ fun:/usr/lib/libX11.so.6.2.0
+ fun:/usr/lib/libX11.so.6.2.0
+ fun:XrmGetStringDatabase
+ fun:XGetDefault
+ fun:_XcursorGetDisplayInfo
+ fun:XcursorGetTheme
+}
+
+{
+ XOpenDisplay
+ Memcheck:Leak
+ fun:calloc
+ fun:XOpenDisplay
+}
+
+{
+ XOpenDisplay
+ Memcheck:Leak
+ fun:malloc
+ fun:XOpenDisplay
+}
+
+#
+# fontconfig
+#
+
+{
+ fontconfig
+ Memcheck:Leak
+ fun:realloc
+ fun:FcPatternObjectInsertElt
+ fun:FcPatternObjectAddWithBinding
+}
+
+{
+ pango_fc_font_map_load_fontset
+ Memcheck:Leak
+ fun:malloc
+ fun:FcLangSetCreate
+ fun:FcLangSetCopy
+ fun:FcValueSave
+ fun:FcPatternObjectAddWithBinding
+ fun:FcPatternObjectAdd
+ fun:FcFontRenderPrepare
+ fun:pango_fc_font_map_load_fontset
+ fun:pango_font_map_load_fontset
+}
+
+{
+ pango_font_map_load_fontset
+ Memcheck:Leak
+ fun:malloc
+ fun:FcPatternObjectAddWithBinding
+ fun:FcPatternObjectAdd
+ fun:FcFontRenderPrepare
+ fun:pango_fc_font_map_load_fontset
+ fun:pango_font_map_load_fontset
+}
+
+{
+ pango_fc_font_map_load_fontset
+ Memcheck:Leak
+ fun:malloc
+ fun:FcStrStaticName
+ fun:FcPatternObjectAddWithBinding
+ fun:FcPatternObjectAdd
+ fun:FcFontRenderPrepare
+ fun:pango_fc_font_map_load_fontset
+}
+
+{
+ pango_fc_font_map_list_families
+ Memcheck:Leak
+ fun:malloc
+ fun:FcStrStaticName
+ fun:FcPatternObjectAddWithBinding
+ fun:FcPatternAdd
+ fun:FcFontSetList
+ fun:FcFontList
+ fun:pango_fc_font_map_list_families
+}
+
+#
+# freetype
+#
+
+{
+ freetype FT_Init_FreeType
+ Memcheck:Leak
+ fun:malloc
+ obj:/usr/lib/libfreetype.so.6.3.10
+ fun:ft_mem_qalloc
+ fun:ft_mem_alloc
+ fun:FT_New_Library
+ fun:FT_Init_FreeType
+}
+
+#
+# glib
+#
+
+{
+ glib g_rand_new
+ Memcheck:Leak
+ fun:calloc
+ fun:g_malloc0
+ fun:g_rand_new_with_seed_array
+ fun:g_rand_new
+ fun:g_random_int
+}
diff --git a/src/trg-client.c b/src/trg-client.c
index 55ae74e..f83b0e4 100644
--- a/src/trg-client.c
+++ b/src/trg-client.c
@@ -61,7 +61,7 @@ struct _TrgClientPrivate {
gint64 updateSerial;
JsonObject *session;
gboolean ssl;
- float version;
+ //float version;
char *url;
char *username;
char *password;
@@ -145,11 +145,11 @@ trg_client_new (void)
return tc;
}
-float trg_client_get_version(TrgClient *tc)
+/*float trg_client_get_version(TrgClient *tc)
{
TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc);
return priv->version;
-}
+}*/
gint64 trg_client_get_rpc_version(TrgClient *tc)
{
@@ -164,7 +164,7 @@ void trg_client_set_session(TrgClient * tc, JsonObject * session)
if (priv->session)
json_object_unref(priv->session);
- session_get_version(session, &priv->version);
+ //session_get_version(session, &priv->version);
priv->session = session;
@@ -204,9 +204,11 @@ int trg_client_populate_with_settings(TrgClient * tc)
host = trg_prefs_get_string(prefs, TRG_PREFS_KEY_HOSTNAME, TRG_PREFS_PROFILE);
if (!host) {
+ g_mutex_unlock(priv->configMutex);
return TRG_NO_HOSTNAME_SET;
} else if (strlen(host) < 1) {
g_free(host);
+ g_mutex_unlock(priv->configMutex);
return TRG_NO_HOSTNAME_SET;
}
diff --git a/src/trg-valgrind.sh b/src/trg-valgrind.sh
index 030a840..aeff135 100644
--- a/src/trg-valgrind.sh
+++ b/src/trg-valgrind.sh
@@ -1,3 +1,2 @@
#!/bin/sh
-
-G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind --tool=memcheck --leak-check=full --leak-resolution=high --num-callers=20 --log-file=valgrind.log ./transmission-remote-gtk
+G_SLICE=always-malloc G_DEBUG=gc-friendly,resident-modules valgrind --suppressions=gtk.suppression --tool=memcheck --leak-check=full --leak-resolution=high --num-callers=20 --log-file=valgrind.log ./transmission-remote-gtk