Graham Barr <[EMAIL PROTECTED]> writes:
>> If I understand the code, pe_sys_multiplex basically waits in a poll/select
>> call until something pops up to wake it up. This implies that there is
>> essentially only one waiting state, which all watchers have to tie into. In
>> other words, if Event is sleeping on a set of filehandles, and some other
>> type of event comes in (an X event handled by a new type of watcher?) the
>> poll/select won't wake up and the event won't be serviced immediately.
>
>But the X event would enter the application on a file descriptor.
True, one does do a select/poll on the X socket(s).
But you need to layer another "logical" watcher on top of that
as one "message" up the socket may contain multiple X events
(Xlib sucks all the XEvents out of the socket and queues them)
so "socket not readable" does NOT mean "No XEvents pending".
Also IIRC this is TCP socket so an XEvent may not be complete.
You also need to XFlush() pending outgoing requests prior to the select().
--
Nick Ing-Simmons <[EMAIL PROTECTED]>
Via, but not speaking for: Texas Instruments Ltd.