[comp.windows.x] Xserver wanted which supports multiple prioritized threads

bills@isi.UUCP (Bill Stratton) (05/06/89)

Hi there -

     Does anyone know of an X.11 server implementation that supports
prioritized multiple threads of execution?  Specifically, I'm looking
for a server that:

     1)  allows you to associate a priority with a connection,

     2)  services high priority connections before lower priority 
         connections, and

     3)  preempts request servicing from a low priority connection
         when a complete request is received from a higher priority
         connection.

     I am currently trying to integrate X.11 displays into real-
time systems for NASA;  these displays will include graphical
simulations of strip chart recorders which must be updated
synchronous to satellite telemetry.  More importantly, user input
must be given priority over display updates;  it is unacceptable to 
make the user wait in satellite control applications.

     Any information would be greatly appreciated.

                                          Bill Stratton
                                          Integral Systems, Inc.
                                          5000A Philadelphia Way
                                          Lanham, MD  20706
                                          301-497-2414

jg@max.crl.dec.com (Jim Gettys) (05/08/89)

Input is normally sent to clients as soon as possible; good X implementations
check for input with great frequency (poor ones may not, so your milage may
vary), by use of shared memory to make the input check cheap.  Of course, you
may not see this for a while if other clients are keeping your server busy,
as the client who gets the input has to do something about it and it may be
a while before its output is displayed.  But a quality implementation will
process input between each request from any client (i.e. as fast as possible).

As to your first request, it would require a server extension to express
the priority, and a more complex (read slower) dispatcher to implement it.
No one to my knowledge has done what you are asking for.  Why don't you
help define an extension?  Note that you may have to think about what happens
when things are grabbed, to prevent possible deadlock situtations.

Note that finer than single request grain scheduling cannot be done in X;
otherwise graphics output cannot be guaranteed to be correct.  (and I shudder
even thinking about implementing such a system).
			- Jim Gettys