On Wed, Feb 22, 2017 at 10:48:24AM +0100, Olivier Fourdan wrote: > Otherwise the output buffer will be accessed from different threads and > cause all sorts of nasty and painful memory corruptions. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99164 > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99887 > Signed-off-by: Olivier Fourdan <[email protected]> > --- > Xi/xiproperty.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/Xi/xiproperty.c b/Xi/xiproperty.c > index b7a1f59..a68b4b3 100644 > --- a/Xi/xiproperty.c > +++ b/Xi/xiproperty.c > @@ -203,10 +203,12 @@ send_property_event(DeviceIntPtr dev, Atom property, > int what) > .what = what > }; > > + input_lock(); > SendEventToAllWindows(dev, DevicePropertyNotifyMask, (xEvent *) &event, > 1); > > SendEventToAllWindows(dev, GetEventFilter(dev, (xEvent *) &xi2), > (xEvent *) &xi2, 1); > + input_unlock();
I don't think that's correct. The input thread is for event *generation*, not processing events which is still done in the event queue. It replaces the old sigio handler. I don't think anything gets here from within the input thread, does it? If so, that's the bug to fix. Cheers, Peter > } > > static int > -- > 2.9.3 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
