errCh使用buffered模式

This commit is contained in:
sheldonlyr
2023-03-07 09:08:15 +08:00
committed by finley
parent 8549f8f874
commit 82f742e31a

View File

@@ -51,7 +51,7 @@ func ListenAndServeWithSignal(cfg *Config, handler tcp.Handler) error {
// ListenAndServe binds port and handle requests, blocking until close // ListenAndServe binds port and handle requests, blocking until close
func ListenAndServe(listener net.Listener, handler tcp.Handler, closeChan <-chan struct{}) { func ListenAndServe(listener net.Listener, handler tcp.Handler, closeChan <-chan struct{}) {
// listen signal // listen signal
errCh := make(chan error) errCh := make(chan error, 1)
defer close(errCh) defer close(errCh)
go func() { go func() {
select { select {
@@ -70,10 +70,7 @@ func ListenAndServe(listener net.Listener, handler tcp.Handler, closeChan <-chan
for { for {
conn, err := listener.Accept() conn, err := listener.Accept()
if err != nil { if err != nil {
select { errCh <- err
case errCh <- err:
default:
}
break break
} }
// handle // handle