[PATCH xserver] Xi: Hold the input lock when sending events

Adam Jackson ajax at nwnk.net
Thu Feb 23 17:51:39 UTC 2017


On Thu, 2017-02-23 at 09:00 +1000, Peter Hutterer wrote:
> On Wed, Feb 22, 2017 at 10:48:24AM +0100, Olivier Fourdan wrote:
> > 
> > @@ -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.

Called by XIChangeDeviceProperty, which at least wacom and libinput
call from their read hook, which runs on the input thread.

- ajax


More information about the xorg-devel mailing list