1
0
mirror of https://github.com/golang/go synced 2024-11-23 19:00:04 -07:00

net/http/httptest: close client connections in separate goroutines

The existing implementation sequentially closes connection in the loop
and until the previous client connections is not closed the next one
would not be processed. Instead, the algorithm modified to spawn the
function that closes single connection in a standalone goroutine, thus
making at least a try to close it.

Change-Id: Ib96b5b477f841926450d122b67f14f1a2da36ee1
Reviewed-on: https://go-review.googlesource.com/33614
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Yasha Bubnov 2016-11-28 23:16:16 +03:00 committed by Brad Fitzpatrick
parent b4dd1d965d
commit 03305a9e0c

View File

@ -235,7 +235,7 @@ func (s *Server) CloseClientConnections() {
nconn := len(s.conns) nconn := len(s.conns)
ch := make(chan struct{}, nconn) ch := make(chan struct{}, nconn)
for c := range s.conns { for c := range s.conns {
s.closeConnChan(c, ch) go s.closeConnChan(c, ch)
} }
s.mu.Unlock() s.mu.Unlock()