code: def _read_fd(file_descr):
          
          try:
              line = os.read(file_descr, 1024 * 1024)
          except OSError:
              stream_desc = NonBlockingStreamReader._get_sd(file_descr)
              if stream_desc is not None:
                  stream_desc.has_error = True
                  if stream_desc.callback is not None:
                      stream_desc.callback()
              return 0
  
          if line:
              stream_desc = NonBlockingStreamReader._get_sd(file_descr)
              if stream_desc is None:
                  return 0 # Process closing
  
              if IS_PYTHON3:
                  try:
                      # @TODO: further develop for not ascii/unicode binary content
                      line = line.decode("ascii")
                  except UnicodeDecodeError:
                      line = repr(line)
              stream_desc.buf += line
              # Break lines
              split = stream_desc.buf.split(os.linesep)
              for line in split[:-1]:
                  stream_desc.read_queue.appendleft(strip_escape(line.strip()))
                  if stream_desc.callback is not None:
                      stream_desc.callback()
              # Store the remainded, its either '' if last char was '\n'
              # or remaining buffer before line end
              stream_desc.buf = split[-1]
              return len(line)
          return 0
docs: Read incoming data from file handle.
          Then find the matching StreamDescriptor by file_descr value.
  
          :param file_descr: file object
          :return: Return number of bytes read