forked from quic-go/quic-go
fix a potential race in server.Close()
This commit is contained in:
11
server.go
11
server.go
@@ -109,15 +109,14 @@ func (s *Server) Close() error {
|
||||
s.sessionsMutex.Unlock()
|
||||
|
||||
s.connMutex.Lock()
|
||||
defer s.connMutex.Unlock()
|
||||
conn := s.conn
|
||||
s.conn = nil
|
||||
s.connMutex.Unlock()
|
||||
|
||||
if s.conn == nil {
|
||||
if conn == nil {
|
||||
return nil
|
||||
}
|
||||
defer func() {
|
||||
s.conn = nil
|
||||
}()
|
||||
return s.conn.Close()
|
||||
return conn.Close()
|
||||
}
|
||||
|
||||
func (s *Server) handlePacket(conn *net.UDPConn, remoteAddr *net.UDPAddr, packet []byte) error {
|
||||
|
||||
Reference in New Issue
Block a user