[comp.sys.sun] Sunview window-sharing problem

clyne@redcloud.ucar.edu (John Clyne) (04/26/89)

Reply-to: horton@spock.ucar.edu (Gary Horton)

Hi, I am not sure this is an appropriate news group for this article. My
apologies if not. I'm posting this for a friend who does not have access
to news. Please respond via email to gary@spock.ucar.edu

SunView window-sharing problem:

SunOS provides for as many as 128 SunView windows (devices) to be opened
at a time.  Users of my application may want as many as 30-40 Frames
(processes), which presently contain as many as 11 window devices each;
obviously, I'm running out of devices.  I'd like a way to share pop-ups
among all other processes. 

I've used shared memory and can get the pointers shared, but not the
actual memory space allocated by window_create.  Passing a pop-up's device
name and then using open() doesn't solve the problem since a new device is
allocated there also (besides, as far as I can tell, I actually need a
Window handle to use window_set() ...  how do I convert a windowfd to a
Window object handle?  Or is there a way to set WIN_SHOW to TRUE using
just the window file descriptor?)  My next attempt will be to use signals
or pipes to notify a server that a particular pop-up is desired; I don't
like this approach for a number of reasons: (a) the response time may be
inadequate; (b) it would be nice to get the pop-up positioned over the
client window...as far as I can tell, pop-ups will only appear with some
portion over their parent window; (c) my application is real-time, with
critical one-second updates being generated; I can't afford to risk
slowing these down with additional blocking from asynchronous signals or
pipe-reads. At worst, I can keep the server separate from the real-time
updater to get around item (c).

Know any tricks to get around the shared memory or file descriptors
problems?  Any other bright ideas?

Thanks for your input...please mail anything at all to
gary@spock.ucar.edu.?