[comp.sys.sun] Sunview windows & SIGALARMs

pvo@sapphire.oce.orst.edu (Paul O'Neill) (06/06/90)

I've just finished my first excursion into Sunview programming.  Fun.
Easy.  Impressed the boss.  BUT--perhaps a window wiz can help with this
unexplained problem.

I started with a terminal-driven image processing program that does
near-real-time stuff to an input of RS-170 video.  I built one panel (with
lots of sliders, choices, etc.) in one window in one frame.

After startingn
		window_main_loop(frame);

"interupt-driven" type procedures control what the program is doing.
Everything worked as expected, except that the image-processor embedded in
my 4/110 (SunOS 4.0.1 if you care) was being told when to grab frames and
massage them in an "interupt-driven" sort of way by SIGALARMs generated
by: 
     ualarm(usec_remaining, usec_interval); 
and its associated:
     signal(SIGALRM, takedata)

THE PROBLEM:

If the cursor is removed from the Sunview panel, or the panel is closed,
the SIGALARMs stop and no more data is grabbed or analyzed.  Returning to
the panel doesn't restart the SIGALARMs.  

Any ideas?  Thanks.

Paul O'Neill                 pvo@oce.orst.edu
Coastal Imaging Lab
OSU--Oceanography
Corvallis, OR  97331         503-737-3251

dgehringer@sun.com (Doug Gehringer) (06/07/90)

In article <8553@brazos.Rice.edu> pvo@sapphire.oce.orst.edu (Paul O'Neill) writes:
>THE PROBLEM:
>
>If the cursor is removed from the Sunview panel, or the panel is closed,
>the SIGALARMs stop and no more data is grabbed or analyzed.  Returning to
>the panel doesn't restart the SIGALARMs.  

Are you using the notifier to handle your alarms?  See section 17 of the
Sunview Programmers Guide (in the 4.0 docs, around pg. 291, in 4.1, pg.
265).  You can't use timers and signals directly, you need to send them
through the notifer. 

  - Doug Gehringer, Graphics Software 
    Sun Microsystems, Mail stop 21-04
    (415) 336-6472 or 960-1300 dgehringer@sun.COM