Closed 113xiaoji closed 2 years ago
func (s *RPCServer) Serve(lis net.Listener) { defer func() { if s.DoneCh != nil { close(s.DoneCh) s.DoneCh = nil } }() for { conn, err := lis.Accept() if err != nil { severity := "ERR" if errors.Is(err, net.ErrClosed) { severity = "DEBUG" } log.Printf("[%s] plugin: plugin server: %s", severity, err) return }
go s.ServeConn(conn) }
}
add defer func() { if s.DoneCh != nil { close(s.DoneCh) s.DoneCh = nil } }() because ,for example test TestServer_testStdLogger,the server change to netrpcserver,it wil be hang ,becase the DoneCh dose not close
func (s *RPCServer) Serve(lis net.Listener) { defer func() { if s.DoneCh != nil { close(s.DoneCh) s.DoneCh = nil } }() for { conn, err := lis.Accept() if err != nil { severity := "ERR" if errors.Is(err, net.ErrClosed) { severity = "DEBUG" } log.Printf("[%s] plugin: plugin server: %s", severity, err) return }
}
add defer func() { if s.DoneCh != nil { close(s.DoneCh) s.DoneCh = nil } }() because ,for example test TestServer_testStdLogger,the server change to netrpcserver,it wil be hang ,becase the DoneCh dose not close