code: func (l *Locking) Read(p []byte) (n int, err error) {
  	l.Lock()
  	n, err = l.R.Read(p)
  	l.Unlock()
  	return
  }
docs: // Read generates len(p) random bytes from the source in the context or
  // the shared global source and writes them into p. It always returns len(p)
  // and a nil error.