On 5/15/2014 8:12 AM, amphitr...@ok.de wrote:

> following "auxiliary construction" to get a placeholder for a
> missing data-'frame':
>
>>  '?c:',                      /* frame on sniffer 1 */
>>  '! spec /+' !! delay !! '/',
>>  '! delay',
>>  '! elastic',
>>  '!z:fanintwo',              /* linked to sniffer 2 */
> 
> But how may I get rid of it when the loop is in sync? The problem
> is, FANINTWO can not predict that soon there will be a record from
> the TCPIP branch and uses one already available in ELASTIC. 

Actually, it looks to me like your problems start before FANINTWO ever
gets involved.  DELAY won't release the record until the delay is up, so
FANOUT can't write the next record to start processing it.  Move the
ELASTIC before the DELAY and you'll eliminate that problem.  But you'll
still eventually get old output from DELAY arriving first.

Instead of DELAY, you can use BEAT to generate records only when nothing
happens.  I've left the "!delay" output the same as in your original
here, but of course you could make it anything you wanted.

...
>>  '?c:',                      /* frame on sniffer 1 */
    '!beat:beat once' delay '/+' !! delay !! '/',
    '! hole',                   /* keep BEAT connected */
    '?beat:',                   /* output here when idle */
>>  '!z:fanintwo',              /* linked to sniffer 2 */
...

In case of late-arriving or extra output, it might be worth tacking on a
record number with JUXTAPOSE and using UNIQUE to discard the extras:

...
>>  '?c:',                      /* frame on sniffer 1 */
    '!beat:beat once' delay '/+' !! delay !! '/',
    '! specs number 1',         /* just record number */
    '!num:juxtapose',           /* add on output below */
    '! unique 1.10 first',      /* first for each number */
    '! not chop 10',            /* discard record number */
>   '!n:fanout',                         /* to COMBINE                   */
>   '!h:',                               /* to SPEC                      */ 
    '?beat:',                   /* output here when idle */
>>  '!z:fanintwo',              /* linked to sniffer 2 */
    '!num:',                    /* add to number above */
...

¬R

Reply via email to