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