David L wrote: [snip] >> I'll have to examine this in much greater detail in order to consider >> patching that part of the X server, and that might happen soon, or >> it might not happen. > > Maybe we should bring this discussion back to the mailing list.? > It seems like this problem is a less severe form of the problem I > was having before... data can be waiting in the kernel serial port > buffer and X isn't doing anything about it.
Sure, posting back to list.
Here is a summery of the bug:
Sometimes an input module (touchscreen for example) doesn't recieve
a complete packet from the serial link, normaly; after the ReadInput
function and event enqueueing return, the device controler had time to
write the rest of the partial packet, thus triggering an interrupt and
generating a SIGIO (which /should/ be masked while we are processing
data as a result of SIGIO), so after, when we unmask the SIGIO it should
be triggered; resulting in the rest of the partial packet to be processed.Sometimes the rest of a partial packet is ignored untill the next packet is written by the device controller.
Personaly,
I currently have no time to look into this, (although I would
be happy to, if that time presents itself, it definitly wont be
over the next two weeks). Sooooo, if anyone does have the time...
or if anyone has a better idea of what should be done... help
is always appriciated ;-)>> >> The hack we implemented here, is to block in xf86EloGetPacket(); > > I don't see any blocking in xf86EloGetPacket.? There's a call to > select with a 0 timeout and a call to read, but I thought the port > was opened non-blocking.? > > Since VMIN is set to 10, why do we read fewer bytes sometimes?
Sorry,
by "here"; I meant at touchtunes ;-) In xf86EloGetPacket we
added:do {
/* Contents of xf86EloGetPacket
*/
} while (we dont have a complete packet);Note for list purposes:
This hack is not IMO a suitable fix because it implies that an
input module is allowed to cause the server to hang.Cheers all,
-Tristan
_______________________________________________ Devel mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/devel
