Actually wrap rand.Reader in bufio.Reader.

Updates #231

PiperOrigin-RevId: 302127697
This commit is contained in:
Bhasker Hariharan
2020-03-20 17:02:13 -07:00
committed by gVisor bot
parent 49aef9cee7
commit 1bf2e52bdb
+16 -1
View File
@@ -17,6 +17,7 @@
package rand
import (
"bufio"
"crypto/rand"
"io"
@@ -45,8 +46,22 @@ func (r *reader) Read(p []byte) (int, error) {
return rand.Read(p)
}
// bufferedReader implements a threadsafe buffered io.Reader.
type bufferedReader struct {
mu sync.Mutex
r *bufio.Reader
}
// Read implements io.Reader.Read.
func (b *bufferedReader) Read(p []byte) (int, error) {
b.mu.Lock()
n, err := b.r.Read(p)
b.mu.Unlock()
return n, err
}
// Reader is the default reader.
var Reader io.Reader = &reader{}
var Reader io.Reader = &bufferedReader{r: bufio.NewReader(&reader{})}
// Read reads from the default reader.
func Read(b []byte) (int, error) {