@@ -474,7 +474,6 @@ func testConnPairRoundTrip(t *testing.T, copySize int, c1, c2 netio.Conn) {
474474 }
475475
476476 var wg sync.WaitGroup
477- wg .Add (4 )
478477
479478 readFunc := func (name string , c netio.Conn ) {
480479 var buf bytes.Buffer
@@ -486,21 +485,19 @@ func testConnPairRoundTrip(t *testing.T, copySize int, c1, c2 netio.Conn) {
486485 if got := buf .Bytes (); ! bytes .Equal (got , want ) {
487486 t .Error ("got != want" )
488487 }
489- wg .Done ()
490488 }
491- go readFunc ("c1" , c1 )
492- go readFunc ("c2" , c2 )
489+ wg . Go ( func () { readFunc ("c1" , c1 ) } )
490+ wg . Go ( func () { readFunc ("c2" , c2 ) } )
493491
494492 writeFunc := func (name string , c netio.Conn ) {
495493 r := hideReaderWriteTo (bytes .NewReader (want ))
496494 if _ , err := io .CopyBuffer (c , r , makeCopyBuf ()); err != nil {
497495 t .Errorf ("Copy %s <- r failed: %v" , name , err )
498496 }
499497 _ = c .CloseWrite ()
500- wg .Done ()
501498 }
502- go writeFunc ("c1" , c1 )
503- go writeFunc ("c2" , c2 )
499+ wg . Go ( func () { writeFunc ("c1" , c1 ) } )
500+ wg . Go ( func () { writeFunc ("c2" , c2 ) } )
504501
505502 wg .Wait ()
506503
@@ -515,15 +512,13 @@ func testConnPairRoundTripBidirectionalCopy(
515512 bidirectionalCopy func (left , right netio.ReadWriter ) (nl2r , nr2l int64 , err error ),
516513) {
517514 var wg sync.WaitGroup
518- wg .Add (1 )
519- go func () {
515+ wg .Go (func () {
520516 if _ , _ , err := bidirectionalCopy (c3 , c4 ); err != nil {
521517 t .Errorf ("Bidirectional copy c3 <-> c4 failed: %v" , err )
522518 }
523519 _ = c3 .Close ()
524520 _ = c4 .Close ()
525- wg .Done ()
526- }()
521+ })
527522 testConnPairRoundTrip (t , copySize , c1 , c2 )
528523 wg .Wait ()
529524}
@@ -535,7 +530,6 @@ func testConnPairRoundTripInterleaveReadWriteToWriteReadFrom(t *testing.T, copyS
535530 rand .Read (want )
536531
537532 var wg sync.WaitGroup
538- wg .Add (4 )
539533
540534 // Read the first half, then WriteTo the second half.
541535 readFunc := func (name string , c netio.Conn ) {
@@ -555,10 +549,9 @@ func testConnPairRoundTripInterleaveReadWriteToWriteReadFrom(t *testing.T, copyS
555549 if got2 := buf .Bytes (); ! bytes .Equal (got2 , want [len (got1 ):]) {
556550 t .Error ("got2 != want2" )
557551 }
558- wg .Done ()
559552 }
560- go readFunc ("c1" , c1 )
561- go readFunc ("c2" , c2 )
553+ wg . Go ( func () { readFunc ("c1" , c1 ) } )
554+ wg . Go ( func () { readFunc ("c2" , c2 ) } )
562555
563556 // Interleave Write and ReadFrom, each writing copySize bytes.
564557 writeFunc := func (name string , c netio.Conn ) {
@@ -577,10 +570,9 @@ func testConnPairRoundTripInterleaveReadWriteToWriteReadFrom(t *testing.T, copyS
577570 }
578571 }
579572 _ = c .CloseWrite ()
580- wg .Done ()
581573 }
582- go writeFunc ("c1" , c1 )
583- go writeFunc ("c2" , c2 )
574+ wg . Go ( func () { writeFunc ("c1" , c1 ) } )
575+ wg . Go ( func () { writeFunc ("c2" , c2 ) } )
584576
585577 wg .Wait ()
586578
@@ -594,12 +586,10 @@ func bidirectionalCopyNoWriteTo(left, right netio.ReadWriter) (nl2r, nr2l int64,
594586 l2rErr error
595587 )
596588
597- wg .Add (1 )
598- go func () {
589+ wg .Go (func () {
599590 nl2r , l2rErr = copyNoWriteTo (right , left )
600591 _ = right .CloseWrite ()
601- wg .Done ()
602- }()
592+ })
603593
604594 nr2l , err = copyNoWriteTo (left , right )
605595 _ = left .CloseWrite ()
@@ -954,10 +944,7 @@ func BenchmarkStreamClientDialServerHandle(
954944 go func () {
955945 var wg sync.WaitGroup
956946 for pc := range ch {
957- wg .Add (1 )
958- go func () {
959- defer wg .Done ()
960-
947+ wg .Go (func () {
961948 req , err := server .HandleStream (pc , logger )
962949 if err != nil {
963950 b .Errorf ("server.HandleStream failed: %v" , err )
@@ -976,7 +963,7 @@ func BenchmarkStreamClientDialServerHandle(
976963 }
977964
978965 _ = serverConn .Close ()
979- }( )
966+ })
980967 }
981968 wg .Wait ()
982969 }()
0 commit comments