attempt to keep TCP listener alive if there's a temporary error (e.g. too many open files), just pause and retry later

This commit is contained in:
Arceliar 2020-10-18 11:01:18 -05:00
parent 9eb4981ac1
commit 1d1c6efa1f
2 changed files with 10 additions and 2 deletions

View file

@ -226,7 +226,13 @@ func (t *tcp) listener(l *TcpListener, listenaddr string) {
sock, err := l.Listener.Accept()
if err != nil {
t.links.core.log.Errorln("Failed to accept connection:", err)
return
select {
case <-l.stop:
return
default:
}
time.Sleep(time.Second) // So we don't busy loop
continue
}
t.waitgroup.Add(1)
options := tcpOptions{