code: func (w *Watcher) close(txn storage.Transaction, migrating bool) {
  	w.trigger.Unregister(w.ctx, txn)
  	if !migrating {
  		for h := range w.handles {
  			h.shutDown(nil)
  		}
  	}
  	w.handles = map[*Handle]struct{}{}
  	w.dataWatch = map[string]map[signal]struct{}{}
  	w.closed = true
  }
docs: // close assumes that the Watcher is locked. It will not unlock it.