@@ -10,16 +10,13 @@ import (
1010 "github.com/devlights/gomy/output"
1111)
1212
13- func init () {
14- rand .Seed (time .Now ().UnixNano ())
15- }
16-
1713// ErrWithWaitGroup は、標準ライブラリ sync.WaitGroup でエラー情報を呼び元に伝播させるサンプルです.
1814func ErrWithWaitGroup () error {
1915 var (
2016 loopRange = enumerable .NewRange (1 , 6 )
2117 waitGrp = sync.WaitGroup {}
2218 errorCh = make (chan error )
19+ rnd = rand .New (rand .NewSource (time .Now ().UnixNano ()))
2320 )
2421
2522 // ----------------------------------------------------------------------------------------
@@ -37,7 +34,7 @@ func ErrWithWaitGroup() error {
3734 output .Stderrl (prefix , "start" )
3835 defer output .Stderrl (prefix , "end" )
3936
40- err := randomErr (prefix )
37+ err := randomErr (prefix , rnd )
4138 if err != nil {
4239 output .Stderrl (prefix , "\t ERROR!!" )
4340 errorCh <- err
@@ -58,8 +55,8 @@ func ErrWithWaitGroup() error {
5855 return nil
5956}
6057
61- func randomErr (message string ) error {
62- i := rand .Intn (100 )
58+ func randomErr (message string , rnd * rand. Rand ) error {
59+ i := rnd .Intn (100 )
6360 if i > 30 {
6461 return fmt .Errorf ("randomErr [%d][%s]" , i , message )
6562 }
0 commit comments