[comp.windows.x] again : avoiding event loops

vyncke@esat.kuleuven.ac.be (06/01/90)

I'm writing an application where the graphical interface is not the main
part of the program. Since I want my windows to be updated after expose
events, I need a kind of asynchrounous behaviour.
I first build the program on a VAX station 3100 and there I had a
routine called XSelectAsyncInput(...) . This worked fine. But two
months ago I switched to a Sun Sparc with X11R4. There I tried to catch
the events in a background process. This however was not failsafe.
Now I implemented the method of John Bruner :

> My approach is to get the file descriptor for the X server (with
> ConnectionNumber(display)) and catch SIGIO.

This works fine but there is still one problem : If I catch an interrupt
when I'm in a X-call, my programm crashes. I worked around this by
postponing the interrupt handling while I'm doing X-calls. This is however
elaborate, and I'm wondering if there is not an other way to prevent the
Xserver from receiving two concurrent X-calls
Please send any reply by Email

-- Frank Vyncke . Department of Robot Vision, KU Leuven, Belgium
                  vyncke@esat.kuleuven.ac.be

ian@hewey.UUCP (Ian Hogg) (06/04/90)

> 
> > My approach is to get the file descriptor for the X server (with
> > ConnectionNumber(display)) and catch SIGIO.
> 
> This works fine but there is still one problem : If I catch an interrupt
> when I'm in a X-call, my programm crashes. I worked around this by
> postponing the interrupt handling while I'm doing X-calls. This is however
> elaborate, and I'm wondering if there is not an other way to prevent the
> Xserver from receiving two concurrent X-calls
> Please send any reply by Email
> 

I haven't tried this but what if you opened the display twice.  Use one display
for your normal processing and the other to update the display in your signal
handler.  Anyone know if this is OK?

-- 
===============================================================================
Ian Hogg                                    email:  ian@dms.cdc.com
Control Data Corporation                    phone:  (612)-553-4484