summaryrefslogtreecommitdiff
path: root/meta/recipes-sato/owl-video-widget/owl-video/gtk_multithread_safe.patch
diff options
context:
space:
mode:
authorDongxiao Xu <dongxiao.xu@intel.com>2010-10-15 16:45:21 +0800
committerRichard Purdie <rpurdie@linux.intel.com>2010-10-15 11:30:49 +0100
commit13a702e9e572a2dc9f6b52a1531a2237d4d98ff1 (patch)
treebc29e988d666341a1efd8823fa1a2c406985ba81 /meta/recipes-sato/owl-video-widget/owl-video/gtk_multithread_safe.patch
parent485839d873287176a3c816c90ea2b5514268d7d5 (diff)
downloadopenembedded-core-13a702e9e572a2dc9f6b52a1531a2237d4d98ff1.tar.gz
openembedded-core-13a702e9e572a2dc9f6b52a1531a2237d4d98ff1.tar.bz2
openembedded-core-13a702e9e572a2dc9f6b52a1531a2237d4d98ff1.tar.xz
openembedded-core-13a702e9e572a2dc9f6b52a1531a2237d4d98ff1.zip
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 <dongxiao.xu@intel.com>
Diffstat (limited to 'meta/recipes-sato/owl-video-widget/owl-video/gtk_multithread_safe.patch')
-rw-r--r--meta/recipes-sato/owl-video-widget/owl-video/gtk_multithread_safe.patch38
1 files changed, 38 insertions, 0 deletions
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 000000000..e153c5e3b
--- /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 <dongxiao.xu@intel.com>
+
+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.