A MultiArrivalTimer is used for waiting on a set of events expected to occur in a burst of unspecified duration. A thread waiting on a MultiArrivalTimer will return when a sufficiently large amount of time elapses after the last arrival, which is taken to mean that the last event from the burst has been received. A different instance of the MultiArrivalTimer class should be used for waiting on separate event bursts.
There are two types of waiting conditions. The linear condition expects bursts where events have linearly increasing interarrival times toward the end of the burst. The timer will measure this increase in time and wait for a constant multiple of this time before signaling a waiting thread. The exponential condition, on the other hand, expects bursts with geometrically increasing interarrival times between the last events. Wait times between events increase exponentially if events with increasing interarrival times are received.
@author Andres Quiroz Hernandez
@version 6.0