Hmm. Apparently I need more than 3 hours of sleep at night. This demonstrates the *other* problem : the need for a buffer. Putting ELASTIC in before the TAKE 1 fixes the stall. And the pipe terminates just as John promised it would.
But I'm still left with the issue of what messages am I loosing in the buffer, and why I need the elastic in the first place. Maybe some coffee will help me think... i ------ Original Message ------ Received: 10:56 AM COT, 07/17/2009 From: "Ian S. Worthington" <[email protected]> To: <[email protected]>, "John P. Hartmann" <[email protected]> Subject: Re: Terminating a STARMSG pipe > Sorry John, quite right. > > It's *derived* from the example in the manual. My bad. > > I'm not sure that FANOUT is the problem though: Here's a version without > it: > > 'pipe (end ?)', > '?i: faninany', > '| console', > '| locate \'termstring'\', > '| take 1', > '|g: gate strict', > '? starmsg', > '|g:', > '|i:', > > Tape 0181 attached R/O > 00000003GLTPFCV3Tape 0181 attached R/O > 00000003GLTPFCV3VMTMNT073I Volume 'MV1194' ready on 0181 (0D35) R/O SL. > PIPDSP029E Pipelines stalled. > PIPMSG003I ... Issued from stage 4 of pipeline 1. > PIPMSG001I ... Running "take 1". > +++ RC(-4095) +++ > > ------ Original Message ------ > Received: 02:03 AM COT, 07/17/2009 > From: "John P. Hartmann" <[email protected]> > To: [email protected] > Subject: Re: Terminating a STARMSG pipe > > > That is not the example in the book. > > > > The problem is the FANOUT. You only terminated one of its outputs. > > That does not terminate it. Try TOTARGET instead or FANOUTWO if you > > absolutely want two streams. > > > > j. > > > > 2009/7/17 Ian S. Worthington <[email protected]>: > > > I'm trying to use the example from the manual to terminate a starmsg > pipe. > > > But once the string is found: > > > > > > 1. I get a stall from TAKE 1 after it receives the termstring (which I can > fix > > > with ELASTIC, just to annoy Rob, but don't want to as I don't want to > loose > > > the other received messages) > > > > > > 2. After so fixing, I then find that the pipe does NOT terminate, but > still > > > sits there until I enter HMSG > > > > > > What's the best way of making this puppy terminate? > > > > > > 'pipe (end ?)', > > > '?i: faninany', > > > '| locate \'termstring'\', > > > '| take 1', > > > '|g: gate strict', > > > '? starmsg', > > > '|g:', > > > '|o: fanout ', > > > '| specs 17-* 1', > > > '| console', > > > '?o: |i:' > > > > > >
