comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: How to use the SPAWN pipe?
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: How to use the SPAWN pipe? [message #36493] Tue, 23 September 2003 06:34
David Fanning is currently offline  David Fanning
Messages: 11724
Registered: August 2001
Senior Member
Ricard Marxer writes:

> Having real problems with this pipe reading issue.
> I am able to read the first line of the output of my program (the program I
> spawned) but then the instruction "READF, Pipe, Line" seems to block. Is it
> because it doesn't detect the end of a line??? Can someone help me out with
> this one, please?

Reading information over pipes like this can
be difficult if you don't know what kind of
information is coming and going. In fact,
the processes on either side of the pipe can
inadvertently be put "to sleep" because they
are waiting for a piece of information. This
is likely what has happened to you. When that
happens, all is lost. :-)

The simple solution (although maybe not for you)
is to write the read/write portion of the code
in such a way that the programs on the other
end of the pipe know what is happening. In
practice this means sending the number of bytes
to read, then the bytes themselves. This makes
sure the bytes on the pipe are always consumed,
and prevents the pipe from "freezing".

Cheers,

David

--
David W. Fanning, Ph.D.
Fanning Software Consulting, Inc.
Phone: 970-221-0438, E-mail: david@dfanning.com
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Toll-Free IDL Book Orders: 1-888-461-0155
Re: How to use the SPAWN pipe? [message #36495 is a reply to message #36493] Mon, 22 September 2003 23:50 Go to previous message
Ricard Marxer is currently offline  Ricard Marxer
Messages: 2
Registered: September 2003
Junior Member
Me again,

Having real problems with this pipe reading issue.
I am able to read the first line of the output of my program (the program I
spawned) but then the instruction "READF, Pipe, Line" seems to block. Is it
because it doesn't detect the end of a line??? Can someone help me out with
this one, please? Thanks
Ricard


"Ricard Marxer" <rpm51@uow.edu.au> escribi� en el mensaje
news:bko8q7$b7e$1@spacebar.ucc.usyd.edu.au...
> Hi,
>
> I want to use the SPAWN command in IDL, to run a program under Unix that
> takes a long time to finish, but while it runs it prints information in
the
> screen. I would like to print this information in a WIDGET_LIST, so I
> thought I would have to use the SPAWN command with the UNIT keyword and
then
> run a loop that will read from the pipe and add the information to the
VALUE
> of the list. This is not a problem, the problem is how to know that the
> program has finished??? Because the last line of the program might change
> in every execution.
>
> Thanks,
> Ricard
>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.502 / Virus Database: 300 - Release Date: 18/07/2003
>
>


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.502 / Virus Database: 300 - Release Date: 18/07/2003
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: How to use the SPAWN pipe?
Next Topic: lens distortion

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Oct 10 10:20:24 PDT 2025

Total time taken to generate the page: 0.00667 seconds