Beispiel #1
0
func (t *transport) runAccepter(s transports.Transport) {
	defer t.wg.Done()
	for {
		conn, err := s.Accept()
		if err == io.EOF {
			break
		}
		if neterr, ok := err.(net.Error); ok && neterr.Temporary() {
			time.Sleep(100 * time.Millisecond)
			continue
		}
		if err != nil {
			return
		}

		t.cAccept <- conn
	}
}