Am 15.03.2010 07:56, schrieb Peter Hutterer:
> XI2 allows devices to change at runtime. Hence a device may add or remove
> valuators on-the-fly as touchpoints appear and disappear. There is a chance
> of a race condition here. If a driver decides to add/remove valuators
> together with the touchpoints, a client that skips events may miss out.
> e.g. if a DeviceChanged event that removes an axis is followed by one that
> adds an axis, a client may only take the second one as current, thus
> thinking the axis was never removed. There is nothing in the XI2 specs that
> prohibits this. Anyways, adding removing axes together with touchpoints
> seems superfluous if we use the presence of an axis as indicator for touch.
> Rather, I think a device should be set up with a fixed number of valuators
> describing the default maximum number of touchpoints. Additional ones can be
> added at runtime if necessary.
I also see the inherent racyness here, but I guess one could work that
out by a few routines in libXi which support the MT conventions hammered
out here. For example, a routine which skims through events and helps to
associate axis labels to events such that races are prevented. I
wouldn't worry about things not forbidden in the current spec, as MT so
far seems to involve some constraints on how clients interact with the
serer anyway.

Cheers,

Simon
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to