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 } }