code: func (c *Cacher) finishDispatching() {
  	c.Lock()
  	defer c.Unlock()
  	c.dispatching = false
  	for _, watcher := range c.watchersToStop {
  		watcher.stop()
  	}
  	c.watchersToStop = c.watchersToStop[:0]
  }
docs: // finishDispatching stops all the watchers that were supposed to be
  // stopped in the meantime, but it was deferred to avoid closing input
  // channels of watchers, as add() may still have writing to it.
  // It also marks dispatching as false.