Running IDL through a unix pipe - obscure question [message #6015] |
Thu, 11 April 1996 00:00 |
Nathaniel Livesey
Messages: 5 Registered: April 1996
|
Junior Member |
|
|
Hello there,
I am using IDL for unix (Linux at the moment, but would want to use
other versions later). I am spawning a child process from an IDL program
and communicating with it via a pipe (i.e. spawn ...,unit=...). The child
process is in fact another IDL program doing widgity type things
designed to keep an eye on the progress of the parent while letting it
get on with calculations.
Is there a way for the child to find out if there is something to be
read from the pipe. If I use READ then the child process will obviously
hang until something comes along. I know that the manual (e.g. page
18-7U of the V4 manual) explicitly says that there is no way to do it in
IDL. I have tried keeping my eye on FSTAT(0) but that doesn't change
until things are actually read. I was wondering if there was a nifty unixy
type thing I can do to find out if there is something waiting to be read
(e.g. a call to ioctl?). Obviously, I could create a file as some sort of
flag, but if I am going to do that, I might as well not bother with the
pipe!
I have briefly tried not using XMANAGER, but using WIDGET_EVENT
directly with the YIELD_TO_TTY option, however that does not seem to work
if the tty is a pipe. I have also tried using WIDGET_CONTROL,TIMER..
type events to interrupt a READ but they are not generated while READ is
waiting.
Bear in mind that the current version of Linux IDL does not support
CALL_EXTERNAL, however, I will be moving to another unix platform before too
long so I wouldn't rule out solutions that involve that.
Many thanks in advance for any help,
Nathaniel Livesey
Jet Propulsion Lab,
Pasadena, California, U.S.A.
|
|
|