Fixes #64252 (maybe).
Change-Id: Iba2a403a9347be4206f14acb11591dc2eb7f9fb8
Reviewed-on: https://go-review.googlesource.com/c/go/+/546616
Reviewed-by: Damien Neil <dneil@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Bryan Mills <bcmills@google.com>
c net.Conn
}
var getOkay bool
+ var copying sync.WaitGroup
closeConn := func() {
sconn.Lock()
defer sconn.Unlock()
}
}
}
- defer closeConn()
+ defer func() {
+ closeConn()
+ copying.Wait()
+ }()
ts := newClientServerTest(t, mode, HandlerFunc(func(w ResponseWriter, r *Request) {
if r.Method == "GET" {
sconn.c = conn
sconn.Unlock()
conn.Write([]byte("HTTP/1.1 200 OK\r\nContent-Length: 3\r\n\r\nfoo")) // keep-alive
- go io.Copy(io.Discard, conn)
+
+ copying.Add(1)
+ go func() {
+ io.Copy(io.Discard, conn)
+ copying.Done()
+ }()
})).ts
c := ts.Client()