code: func NewLimitQueue(dst events.Sink, limit uint64) *LimitQueue {
  	eq := LimitQueue{
  		dst:    dst,
  		events: list.New(),
  		limit:  limit,
  		full:   make(chan struct{}),
  	}
  
  	eq.cond = sync.NewCond(&eq.mu)
  	go eq.run()
  	return &eq
  }
docs: // NewLimitQueue returns a queue to the provided Sink dst.