code: def read_nonblocking(self, size=1, timeout=-1):
          
          if os.name == 'posix':
              if timeout == -1:
                  timeout = self.timeout
              rlist = [self.child_fd]
              wlist = []
              xlist = []
              if self.use_poll:
                  rlist = poll_ignore_interrupts(rlist, timeout)
              else:
                  rlist, wlist, xlist = select_ignore_interrupts(
                      rlist, wlist, xlist, timeout
                  )
              if self.child_fd not in rlist:
                  raise TIMEOUT('Timeout exceeded.')
          return super(fdspawn, self).read_nonblocking(size)
docs: Read from the file descriptor and return the result as a string.
  
          The read_nonblocking method of :class:`SpawnBase` assumes that a call
          to os.read will not block (timeout parameter is ignored). This is not
          the case for POSIX file-like objects such as sockets and serial ports.
  
          Use :func:`select.select`, timeout is implemented conditionally for
          POSIX systems.
  
          :param int size: Read at most *size* bytes.
          :param int timeout: Wait timeout seconds for file descriptor to be
              ready to read. When -1 (default), use self.timeout. When 0, poll.
          :return: String containing the bytes read