defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(maxProcs))
ln := newLocalListener(t)
defer ln.Close()
- donec := make(chan struct{})
- defer close(donec)
-
- testsDone := func() bool {
- select {
- case <-donec:
- return true
- }
- return false
- }
+ acceptc := make(chan error, 1)
// The server, with no timeouts of its own, sending bytes to clients
// as fast as it can.
for {
c, err := ln.Accept()
if err != nil {
- if !testsDone() {
- t.Fatalf("Accept: %v", err)
- }
+ acceptc <- err
return
}
go func() {
select {
case res := <-servec:
t.Logf("for %v: server in %v wrote %d, %v", name, res.d, res.n, res.err)
+ case err := <-acceptc:
+ t.Fatalf("for %v: server Accept = %v", name, err)
case <-time.After(tooLong):
t.Fatalf("for %v, timeout waiting for server to finish writing", name)
}