mercurial/worker.py
changeset 45390 7d24201b6447
parent 45376 26eb62bd0550
child 45825 8f07f5a9c3de
equal deleted inserted replaced
45388:6ba7190ff863 45390:7d24201b6447
    69 
    69 
    70     class _blockingreader(object):
    70     class _blockingreader(object):
    71         def __init__(self, wrapped):
    71         def __init__(self, wrapped):
    72             self._wrapped = wrapped
    72             self._wrapped = wrapped
    73 
    73 
    74         def __getattr__(self, attr):
    74         # Do NOT implement readinto() by making it delegate to
    75             return getattr(self._wrapped, attr)
    75         # _wrapped.readinto(), since that is unbuffered. The unpickler is fine
       
    76         # with just read() and readline(), so we don't need to implement it.
       
    77 
       
    78         def readline(self):
       
    79             return self._wrapped.readline()
    76 
    80 
    77         # issue multiple reads until size is fulfilled
    81         # issue multiple reads until size is fulfilled
    78         def read(self, size=-1):
    82         def read(self, size=-1):
    79             if size < 0:
    83             if size < 0:
    80                 return self._wrapped.readall()
    84                 return self._wrapped.readall()
    89                     break
    93                     break
    90                 pos += ret
    94                 pos += ret
    91 
    95 
    92             del view
    96             del view
    93             del buf[pos:]
    97             del buf[pos:]
    94             return buf
    98             return bytes(buf)
    95 
    99 
    96 
   100 
    97 else:
   101 else:
    98 
   102 
    99     def _blockingreader(wrapped):
   103     def _blockingreader(wrapped):