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>
This commit is contained in:
Dongxiao Xu 2010-10-15 16:45:21 +08:00 committed by Richard Purdie
parent 485839d873
commit 13a702e9e5
9 changed files with 40 additions and 1 deletions

View File

@ -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.

View File

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

Before

Width:  |  Height:  |  Size: 329 B

After

Width:  |  Height:  |  Size: 329 B

View File

Before

Width:  |  Height:  |  Size: 570 B

After

Width:  |  Height:  |  Size: 570 B

View File

Before

Width:  |  Height:  |  Size: 689 B

After

Width:  |  Height:  |  Size: 689 B

View File

Before

Width:  |  Height:  |  Size: 630 B

After

Width:  |  Height:  |  Size: 630 B

View File

Before

Width:  |  Height:  |  Size: 570 B

After

Width:  |  Height:  |  Size: 570 B

View File

@ -9,11 +9,12 @@ SECTION = "x11"
DEPENDS = "libowl-av"
PV = "0.0+svnr${SRCREV}"
PR = "r1"
PR = "r2"
S = "${WORKDIR}/video"
SRC_URI = "svn://svn.o-hand.com/repos/misc/trunk;module=video;proto=http \
file://gtk_multithread_safe.patch \
file://owl-video-widget.png \
file://stock_media-play.png \
file://stock_volume-0.png \