Limiter
A limiter block places a cap on the number of packets allowed to be sent downstream at any given time. It is usually inserted between a Multicast block and a Consumer block (and in general before any IPC blocks transmitting to the consumer).
If a new packet arrives and the current number of downstream packets is at the capacity, the packet is returned upstream immediately without reaching the consumer. This is similar to frame-skipping that can be invoked by a Mailbox queue block attached to the consumer. However, in this case the skipping can occur in the producer application rather than in the consumer. When a consumer at capacity returns a packet for reuse it can then receive a new packet.
A Limiter block does not interact with any other Limiter blocks used with other consumers. Each independently imposes its own limit on what is downstream and not affected by the operations of any other limiter.
In addition, when using a mailbox queue, the consumer application must be capable of dealing with skipped frames. Typical consumers may not be aware of skipped frames and operate on the frame they receive without regard to previous frames. Where consumers need to know that a frame is missed the application suite must include a sequence number, timestamp, or other identifying information in the packet data.
Since faulty consumers may take some packets out of service, the application may need to allocate additional total packets to ensure that there are enough left for the producer and remaining consumers to use if one consumer reaches its cap and never returns any packets again.