|
|
@@ -17,7 +17,6 @@
|
|
|
package rpc
|
|
|
|
|
|
import (
|
|
|
- "bufio"
|
|
|
"container/list"
|
|
|
"context"
|
|
|
crand "crypto/rand"
|
|
|
@@ -51,10 +50,14 @@ func NewID() ID {
|
|
|
|
|
|
// randomIDGenerator returns a function generates a random IDs.
|
|
|
func randomIDGenerator() func() ID {
|
|
|
- seed, err := binary.ReadVarint(bufio.NewReader(crand.Reader))
|
|
|
- if err != nil {
|
|
|
+ var buf = make([]byte, 8)
|
|
|
+ var seed int64
|
|
|
+ if _, err := crand.Read(buf); err == nil {
|
|
|
+ seed = int64(binary.BigEndian.Uint64(buf))
|
|
|
+ } else {
|
|
|
seed = int64(time.Now().Nanosecond())
|
|
|
}
|
|
|
+
|
|
|
var (
|
|
|
mu sync.Mutex
|
|
|
rng = rand.New(rand.NewSource(seed))
|