code: func (w WatchSet) AddWithLimit(softLimit int, watchCh <-chan struct{}, altCh <-chan struct{}) {
  	// This is safe for a nil WatchSet so we don't need to check that here.
  	if len(w) < softLimit {
  		w.Add(watchCh)
  	} else {
  		w.Add(altCh)
  	}
  }
docs: // AddWithLimit appends a watchCh to the WatchSet if non-nil, and if the given
  // softLimit hasn't been exceeded. Otherwise, it will watch the given alternate
  // channel. It's expected that the altCh will be the same on many calls to this
  // function, so you will exceed the soft limit a little bit if you hit this, but
  // not by much.
  //
  // This is useful if you want to track individual items up to some limit, after
  // which you watch a higher-level channel (usually a channel from start start of
  // an iterator higher up in the radix tree) that will watch a superset of items.