From 7861683872ad1f13763e4fad5e372a075677503f Mon Sep 17 00:00:00 2001 From: Julien Moutte Date: Mon, 22 Jan 2007 13:16:42 +0000 Subject: [PATCH] sys/: Looking at Xorg code i can't figure out if that XKeysymToString function is thread sensible or not. Lock it jus... Original commit message from CVS: 2007-01-22 Julien MOUTTE * sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents): * sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents): Looking at Xorg code i can't figure out if that XKeysymToString function is thread sensible or not. Lock it just in case as recommended by Radek Doulik . --- ChangeLog | 8 ++++++++ sys/ximage/ximagesink.c | 2 ++ sys/xvimage/xvimagesink.c | 2 ++ 3 files changed, 12 insertions(+) diff --git a/ChangeLog b/ChangeLog index c0530527ee..ca2a4aa5d6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-01-22 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents): + Looking at Xorg code i can't figure out if that XKeysymToString + function is thread sensible or not. Lock it just in case as + recommended by Radek Doulik . + 2007-01-22 Julien MOUTTE * sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents): diff --git a/sys/ximage/ximagesink.c b/sys/ximage/ximagesink.c index 1f65d3a091..788121facc 100644 --- a/sys/ximage/ximagesink.c +++ b/sys/ximage/ximagesink.c @@ -967,9 +967,11 @@ gst_ximagesink_handle_xevents (GstXImageSink * ximagesink) e.xkey.keycode, 0); g_mutex_unlock (ximagesink->x_lock); if (keysym != NoSymbol) { + g_mutex_lock (ximagesink->x_lock); gst_navigation_send_key_event (GST_NAVIGATION (ximagesink), e.type == KeyPress ? "key-press" : "key-release", XKeysymToString (keysym)); + g_mutex_unlock (ximagesink->x_lock); } else { gst_navigation_send_key_event (GST_NAVIGATION (ximagesink), e.type == KeyPress ? "key-press" : "key-release", "unknown"); diff --git a/sys/xvimage/xvimagesink.c b/sys/xvimage/xvimagesink.c index ffcf256a57..7906a4f647 100644 --- a/sys/xvimage/xvimagesink.c +++ b/sys/xvimage/xvimagesink.c @@ -1092,9 +1092,11 @@ gst_xvimagesink_handle_xevents (GstXvImageSink * xvimagesink) e.xkey.keycode, 0); g_mutex_unlock (xvimagesink->x_lock); if (keysym != NoSymbol) { + g_mutex_lock (xvimagesink->x_lock); gst_navigation_send_key_event (GST_NAVIGATION (xvimagesink), e.type == KeyPress ? "key-press" : "key-release", XKeysymToString (keysym)); + g_mutex_unlock (xvimagesink->x_lock); } else { gst_navigation_send_key_event (GST_NAVIGATION (xvimagesink), e.type == KeyPress ? "key-press" : "key-release", "unknown");