code: func (q *Queue) Close() error {
  	// Make sure all watchers have been closed to avoid a deadlock when
  	// closing the broadcaster.
  	q.mu.Lock()
  	for _, cancelFunc := range q.cancelFuncs {
  		cancelFunc()
  	}
  	q.cancelFuncs = make(map[events.Sink]func())
  	q.mu.Unlock()
  
  	return q.broadcast.Close()
  }
docs: // Close closes the queue and frees the associated resources.