code: func (d *DedupManager) setLeader(tmpl *template.Template, lockCh <-chan struct{}) {
  	// Update the lock state
  	d.leaderLock.Lock()
  	if lockCh != nil {
  		d.leader[tmpl] = lockCh
  	} else {
  		delete(d.leader, tmpl)
  	}
  	d.leaderLock.Unlock()
  
  	// Clear the lastWrite hash if we've lost leadership
  	if lockCh == nil {
  		d.lastWriteLock.Lock()
  		delete(d.lastWrite, tmpl)
  		d.lastWriteLock.Unlock()
  	}
  
  	// Do an async notify of an update
  	select {
  	case d.updateCh <- struct{}{}:
  	default:
  	}
  }
docs: // setLeader sets if we are currently the leader instance