Just for my own edification, could you explain in a bit more detail why Lookup doesn't terminate when the records I am NOT feeding back to it via the fanintwo (i.e. what would constitute the sole source of records on the primary input were the fanintwo not there) runs out? I mean, if there's no more records there, there's no chance anything else will arrive on the secondary input of the fanintwo ... -- bc
On Wed, Aug 5, 2009 at 3:50 PM, Glenn Knickerbocker<[email protected]> wrote: > Bob Cronin wrote: >> send them to the faninany preceding the lookup. When I do that with >> copy or elastic, the pipe stalls. Ideas? > > You need something to sever LOOKUP's primary input at EOF. As long as > it's still feeding back to itself, it can never terminate. The simplest > way I've come up with is to feed the alternate output of COUNT to GATE. > That avoids making any new copies of records with FANOUT, or delaying > any records with TAKE LAST. > > Also, given the possibility that you might reprocess a record more than > once, you want FANINTWO rather than FANINANY, so that the next record > can't be read until you're done with this one. > > (end ?) > end: fanin > | stop: gate > ? ... > | count: count lines > | feedback: fanintwo > | stop: > | match: lookup ... > ? ... > | match: > | locate ... > | copy > | feedback: > ? count: > | end: > > ¬R >
