in reassembler.go [286:317]
func (l *eventList) CleanUp() ([]*event, int) {
l.Lock()
defer l.Unlock()
var lost int
var seq sequenceNum
var evicted []*event
for {
size := len(l.seqs)
if size == 0 {
break
}
// Get event.
seq = l.seqs[0]
event := l.events[seq]
if event.complete || size > l.maxSize || event.IsExpired() {
if l.lastSeq > 0 {
lost += int(seq - l.lastSeq - 1)
}
l.lastSeq = seq
evicted = append(evicted, event)
l.remove()
continue
}
break
}
return evicted, lost
}