From 13a702e9e572a2dc9f6b52a1531a2237d4d98ff1 Mon Sep 17 00:00:00 2001 From: Dongxiao Xu Date: Fri, 15 Oct 2010 16:45:21 +0800 Subject: Use gdk_threads_enter/gdk_threads_leave to ensure gtk multithread safe If the video player tries to play an unknown type file, it will enter the error_cb() function, which is called in another thread. Use gdk_threads_enter/gdk_threads_leave to ensure the safe of gtk multi-thread operation. This fixes [BUGID #474] Signed-off-by: Dongxiao Xu --- .../owl-video/gtk_multithread_safe.patch | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 meta/recipes-sato/owl-video-widget/owl-video/gtk_multithread_safe.patch (limited to 'meta/recipes-sato/owl-video-widget/owl-video/gtk_multithread_safe.patch') diff --git a/meta/recipes-sato/owl-video-widget/owl-video/gtk_multithread_safe.patch b/meta/recipes-sato/owl-video-widget/owl-video/gtk_multithread_safe.patch new file mode 100644 index 0000000000..e153c5e3b9 --- /dev/null +++ b/meta/recipes-sato/owl-video-widget/owl-video/gtk_multithread_safe.patch @@ -0,0 +1,38 @@ +Use gdk_threads_enter/gdk_threads_leave to ensure gtk multithread safe + +If the video player tries to play an unknown type file, it will enter +the error_cb() function, which is called in another thread. +Use gdk_threads_enter/gdk_threads_leave to ensure the safe of gtk +multi-thread operation. + +Signed-off-by: Dongxiao Xu + +diff -ruN video-orig/src/video.c video/src/video.c +--- video-orig/src/video.c 2010-10-15 16:07:26.522346398 +0800 ++++ video/src/video.c 2010-10-15 16:25:51.780296717 +0800 +@@ -96,6 +96,7 @@ + { + GtkWidget *dialog; + ++ gdk_threads_enter(); + dialog = gtk_message_dialog_new (data->window, + GTK_DIALOG_NO_SEPARATOR, + GTK_MESSAGE_ERROR, +@@ -103,6 +104,7 @@ + error->message); + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); ++ gdk_threads_leave(); + } + + /** +@@ -606,7 +608,9 @@ + + gtk_widget_show_all (GTK_WIDGET (data->window)); + ++ gdk_threads_enter(); + gtk_main (); ++ gdk_threads_leave(); + + /** + * Cleanup. -- cgit v1.2.3-54-g00ecf