code: func (hub *Hub) updater() {
  	for {
  		// TODO: Wait for a USB hotplug event (not supported yet) or a refresh timeout
  		// <-hub.changes
  		time.Sleep(refreshCycle)
  
  		// Run the wallet refresher
  		hub.refreshWallets()
  
  		// If all our subscribers left, stop the updater
  		hub.stateLock.Lock()
  		if hub.updateScope.Count() == 0 {
  			hub.updating = false
  			hub.stateLock.Unlock()
  			return
  		}
  		hub.stateLock.Unlock()
  	}
  }
docs: // updater is responsible for maintaining an up-to-date list of wallets managed
  // by the USB hub, and for firing wallet addition/removal events.