Merge release-20200219.0-213-g1bf2e52 (automated)
This commit is contained in:
commit
323ed35eb4
|
@ -17,6 +17,7 @@
|
||||||
package rand
|
package rand
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bufio"
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
"io"
|
"io"
|
||||||
|
|
||||||
|
@ -45,8 +46,22 @@ func (r *reader) Read(p []byte) (int, error) {
|
||||||
return rand.Read(p)
|
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.
|
// 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.
|
// Read reads from the default reader.
|
||||||
func Read(b []byte) (int, error) {
|
func Read(b []byte) (int, error) {
|
||||||
|
|
Loading…
Reference in New Issue