Hi Mukund,

Please recognize that the Source object returned by rand.NewSource is not 
safe for concurrent use by multiple goroutines. Look at the documentation 
of NewSource in package math/rand. You are defining r as a global variable 
and probably call pickENI() from multiple goroutines, which is running into 
an issue. The example program will not generate a problem, because it 
doesn't call pickENI() in multiple goroutines.

The easy way out is to use rand.Int63 instead of r.Int63. It uses a source 
that is protected against use in multiple goroutines. You might want to use 
Seed to prevent the generation of the same ENI in each run. Alternatively 
you could write a lock-protected source yourself, it shouldn't be too 
difficult.

Uli

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to