mirror of
				https://github.com/yggdrasil-network/yggdrasil-go.git
				synced 2025-11-04 03:05:07 +03:00 
			
		
		
		
	Remove unnecessary selects
This commit is contained in:
		
							parent
							
								
									39567bed83
								
							
						
					
					
						commit
						2cd373fc1e
					
				
					 8 changed files with 52 additions and 68 deletions
				
			
		| 
						 | 
				
			
			@ -57,17 +57,15 @@ func (a *admin) init(c *Core) {
 | 
			
		|||
	a.reconfigure = make(chan chan error, 1)
 | 
			
		||||
	go func() {
 | 
			
		||||
		for {
 | 
			
		||||
			select {
 | 
			
		||||
			case e := <-a.reconfigure:
 | 
			
		||||
				a.core.configMutex.RLock()
 | 
			
		||||
				if a.core.config.AdminListen != a.core.configOld.AdminListen {
 | 
			
		||||
					a.listenaddr = a.core.config.AdminListen
 | 
			
		||||
					a.close()
 | 
			
		||||
					a.start()
 | 
			
		||||
				}
 | 
			
		||||
				a.core.configMutex.RUnlock()
 | 
			
		||||
				e <- nil
 | 
			
		||||
			e := <-a.reconfigure
 | 
			
		||||
			a.core.configMutex.RLock()
 | 
			
		||||
			if a.core.config.AdminListen != a.core.configOld.AdminListen {
 | 
			
		||||
				a.listenaddr = a.core.config.AdminListen
 | 
			
		||||
				a.close()
 | 
			
		||||
				a.start()
 | 
			
		||||
			}
 | 
			
		||||
			a.core.configMutex.RUnlock()
 | 
			
		||||
			e <- nil
 | 
			
		||||
		}
 | 
			
		||||
	}()
 | 
			
		||||
	a.core.configMutex.RLock()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -82,10 +82,8 @@ func (t *dht) init(c *Core) {
 | 
			
		|||
	t.reconfigure = make(chan chan error, 1)
 | 
			
		||||
	go func() {
 | 
			
		||||
		for {
 | 
			
		||||
			select {
 | 
			
		||||
			case e := <-t.reconfigure:
 | 
			
		||||
				e <- nil
 | 
			
		||||
			}
 | 
			
		||||
			e := <-t.reconfigure
 | 
			
		||||
			e <- nil
 | 
			
		||||
		}
 | 
			
		||||
	}()
 | 
			
		||||
	t.nodeID = *t.core.GetNodeID()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,13 +25,11 @@ func (m *multicast) init(core *Core) {
 | 
			
		|||
	m.reconfigure = make(chan chan error, 1)
 | 
			
		||||
	go func() {
 | 
			
		||||
		for {
 | 
			
		||||
			select {
 | 
			
		||||
			case e := <-m.reconfigure:
 | 
			
		||||
				m.myAddrMutex.Lock()
 | 
			
		||||
				m.myAddr = m.core.tcp.getAddr()
 | 
			
		||||
				m.myAddrMutex.Unlock()
 | 
			
		||||
				e <- nil
 | 
			
		||||
			}
 | 
			
		||||
			e := <-m.reconfigure
 | 
			
		||||
			m.myAddrMutex.Lock()
 | 
			
		||||
			m.myAddr = m.core.tcp.getAddr()
 | 
			
		||||
			m.myAddrMutex.Unlock()
 | 
			
		||||
			e <- nil
 | 
			
		||||
		}
 | 
			
		||||
	}()
 | 
			
		||||
	m.groupAddr = "[ff02::114]:9001"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,10 +35,8 @@ func (ps *peers) init(c *Core) {
 | 
			
		|||
	ps.reconfigure = make(chan chan error, 1)
 | 
			
		||||
	go func() {
 | 
			
		||||
		for {
 | 
			
		||||
			select {
 | 
			
		||||
			case e := <-ps.reconfigure:
 | 
			
		||||
				e <- nil
 | 
			
		||||
			}
 | 
			
		||||
			e := <-ps.reconfigure
 | 
			
		||||
			e <- nil
 | 
			
		||||
		}
 | 
			
		||||
	}()
 | 
			
		||||
	ps.allowedEncryptionPublicKeys = make(map[crypto.BoxPubKey]struct{})
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -53,10 +53,8 @@ func (s *searches) init(core *Core) {
 | 
			
		|||
	s.reconfigure = make(chan chan error, 1)
 | 
			
		||||
	go func() {
 | 
			
		||||
		for {
 | 
			
		||||
			select {
 | 
			
		||||
			case e := <-s.reconfigure:
 | 
			
		||||
				e <- nil
 | 
			
		||||
			}
 | 
			
		||||
			e := <-s.reconfigure
 | 
			
		||||
			e <- nil
 | 
			
		||||
		}
 | 
			
		||||
	}()
 | 
			
		||||
	s.searches = make(map[crypto.NodeID]*searchInfo)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -131,21 +131,19 @@ func (ss *sessions) init(core *Core) {
 | 
			
		|||
	ss.reconfigure = make(chan chan error, 1)
 | 
			
		||||
	go func() {
 | 
			
		||||
		for {
 | 
			
		||||
			select {
 | 
			
		||||
			case e := <-ss.reconfigure:
 | 
			
		||||
				responses := make(map[crypto.Handle]chan error)
 | 
			
		||||
				for index, session := range ss.sinfos {
 | 
			
		||||
					responses[index] = make(chan error)
 | 
			
		||||
					session.reconfigure <- responses[index]
 | 
			
		||||
				}
 | 
			
		||||
				for _, response := range responses {
 | 
			
		||||
					if err := <-response; err != nil {
 | 
			
		||||
						e <- err
 | 
			
		||||
						continue
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				e <- nil
 | 
			
		||||
			e := <-ss.reconfigure
 | 
			
		||||
			responses := make(map[crypto.Handle]chan error)
 | 
			
		||||
			for index, session := range ss.sinfos {
 | 
			
		||||
				responses[index] = make(chan error)
 | 
			
		||||
				session.reconfigure <- responses[index]
 | 
			
		||||
			}
 | 
			
		||||
			for _, response := range responses {
 | 
			
		||||
				if err := <-response; err != nil {
 | 
			
		||||
					e <- err
 | 
			
		||||
					continue
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			e <- nil
 | 
			
		||||
		}
 | 
			
		||||
	}()
 | 
			
		||||
	ss.permShared = make(map[crypto.BoxPubKey]*crypto.BoxSharedKey)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -90,18 +90,16 @@ func (iface *tcpInterface) init(core *Core) (err error) {
 | 
			
		|||
	iface.reconfigure = make(chan chan error, 1)
 | 
			
		||||
	go func() {
 | 
			
		||||
		for {
 | 
			
		||||
			select {
 | 
			
		||||
			case e := <-iface.reconfigure:
 | 
			
		||||
				iface.core.configMutex.RLock()
 | 
			
		||||
				updated := iface.core.config.Listen != iface.core.configOld.Listen
 | 
			
		||||
				iface.core.configMutex.RUnlock()
 | 
			
		||||
				if updated {
 | 
			
		||||
					iface.serv_stop <- true
 | 
			
		||||
					iface.serv.Close()
 | 
			
		||||
					e <- iface.listen()
 | 
			
		||||
				} else {
 | 
			
		||||
					e <- nil
 | 
			
		||||
				}
 | 
			
		||||
			e := <-iface.reconfigure
 | 
			
		||||
			iface.core.configMutex.RLock()
 | 
			
		||||
			updated := iface.core.config.Listen != iface.core.configOld.Listen
 | 
			
		||||
			iface.core.configMutex.RUnlock()
 | 
			
		||||
			if updated {
 | 
			
		||||
				iface.serv_stop <- true
 | 
			
		||||
				iface.serv.Close()
 | 
			
		||||
				e <- iface.listen()
 | 
			
		||||
			} else {
 | 
			
		||||
				e <- nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,19 +46,17 @@ func (tun *tunAdapter) init(core *Core, send chan<- []byte, recv <-chan []byte)
 | 
			
		|||
	tun.icmpv6.init(tun)
 | 
			
		||||
	go func() {
 | 
			
		||||
		for {
 | 
			
		||||
			select {
 | 
			
		||||
			case e := <-tun.reconfigure:
 | 
			
		||||
				tun.core.configMutex.RLock()
 | 
			
		||||
				updated := tun.core.config.IfName != tun.core.configOld.IfName ||
 | 
			
		||||
					tun.core.config.IfTAPMode != tun.core.configOld.IfTAPMode ||
 | 
			
		||||
					tun.core.config.IfMTU != tun.core.configOld.IfMTU
 | 
			
		||||
				tun.core.configMutex.RUnlock()
 | 
			
		||||
				if updated {
 | 
			
		||||
					tun.core.log.Println("Reconfiguring TUN/TAP is not supported yet")
 | 
			
		||||
					e <- nil
 | 
			
		||||
				} else {
 | 
			
		||||
					e <- nil
 | 
			
		||||
				}
 | 
			
		||||
			e := <-tun.reconfigure
 | 
			
		||||
			tun.core.configMutex.RLock()
 | 
			
		||||
			updated := tun.core.config.IfName != tun.core.configOld.IfName ||
 | 
			
		||||
				tun.core.config.IfTAPMode != tun.core.configOld.IfTAPMode ||
 | 
			
		||||
				tun.core.config.IfMTU != tun.core.configOld.IfMTU
 | 
			
		||||
			tun.core.configMutex.RUnlock()
 | 
			
		||||
			if updated {
 | 
			
		||||
				tun.core.log.Println("Reconfiguring TUN/TAP is not supported yet")
 | 
			
		||||
				e <- nil
 | 
			
		||||
			} else {
 | 
			
		||||
				e <- nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue