On Nov 24, 2010, at 12:33, Glenn Knickerbocker wrote:

> Paul Gilmartin wrote:
>> I would be delighted if that happened.  In a case that I can't
>> reproduce in a simple test, it was leaving the original file
>> unmodified.
> 
> It could have been as simple as having filemode A accessed R/O. 
> Understanding commitment isn't really the problem here.  The basic idea
> is simple:  If a device driver can't start, the pipeline won't run.  The
> problem is that a nonzero return code doesn't necessarily tell you
> whether the pipeline ran or not.
> 
> PIPE (end /) < FOO BAR A | state | > FOO FOUND A
> ...
> 
Most of my confusion arose from expecting an existing file to
be erased when the stage creating it may not have run.
I'm simplifying my life (I hope).  I've coded a stage:

   /* REXX iffile_2Erexx Wed Nov 24 21:36:01 MST 2010 */ signal on novalue;  
   address 'COMMAND' 'STATE' arg( 1 )                                           
       
   if RC==28 then return( 0 )
   'ADDPIPE <' arg( 1 ) '| *.output:'                               
   return( RC ) 

I'm watching my terminal logs.  Whenever I see FPLD..., I consider
replacing "< fn ft fm" with "IFFILE fn ft fm".

Have I missed any pitfalls?  (I consider any RC from STATE other than
0 or 28 a programming error to be repaired elsewhere.)  Is there any
reason for preferring CALLPIPE over ADDPIPE?

Thanks,
gil

Reply via email to