'Returns buffered bytes without advancing the position.
The argument indicates a desired minimal number of bytes; we
do at most one raw read to satisfy it.  We never return more
than self.buffer_size.'

def peek(self, n=0):

    with self._read_lock:
        return self._peek_unlocked(n)
