Ejemplo n.º 1
0
 def recv(self, size):
     while True:
         try:
             data = _read(self.fileno(), size)
         except (IOError, OSError):
             code = sys.exc_info()[1].args[0]
             if code in ignored_errors:
                 pass
             elif code == EBADF:
                 return ''
             else:
                 raise
             sys.exc_clear()
         else:
             if not self._translate or not data:
                 return data
             if self._eat_newline:
                 self._eat_newline = False
                 if data.startswith('\n'):
                     data = data[1:]
                     if not data:
                         return self.recv(size)
             if data.endswith('\r'):
                 self._eat_newline = True
             return self._translate_newlines(data)
         try:
             self.hub.wait(self._read_event)
         except IOError:
             ex = sys.exc_info()[1]
             if ex.args[0] == EBADF:
                 return ''
             raise
Ejemplo n.º 2
0
 def recv(self, size):
     while True:
         try:
             data = _read(self.fileno(), size)
         except (IOError, OSError):
             code = sys.exc_info()[1].args[0]
             if code in ignored_errors:
                 pass
             elif code == EBADF:
                 return ''
             else:
                 raise
             sys.exc_clear()
         else:
             if not self._translate or not data:
                 return data
             if self._eat_newline:
                 self._eat_newline = False
                 if data.startswith('\n'):
                     data = data[1:]
                     if not data:
                         return self.recv(size)
             if data.endswith('\r'):
                 self._eat_newline = True
             return self._translate_newlines(data)
         try:
             self.hub.wait(self._read_event)
         except IOError:
             ex = sys.exc_info()[1]
             if ex.args[0] == EBADF:
                 return ''
             raise
Ejemplo n.º 3
0
 def __read(self, n):
     if not self._readable:
         raise UnsupportedOperation('read')
     while True:
         try:
             return _read(self._fileno, n)
         except (IOError, OSError) as ex:
             if ex.args[0] not in ignored_errors:
                 raise
         self.hub.wait(self._read_event)
 def __read(self, n):
     if not self._readable:
         raise UnsupportedOperation('read')
     while True:
         try:
             return _read(self._fileno, n)
         except (IOError, OSError) as ex:
             if ex.args[0] not in ignored_errors:
                 raise
         self.hub.wait(self._read_event)
Ejemplo n.º 5
0
 def __read(self, n):
     if self._read_watcher is None:
         raise UnsupportedOperation('read')
     while 1:
         try:
             return _read(self._fileno, n)
         except (IOError, OSError) as ex:
             if ex.args[0] not in ignored_errors:
                 raise
         wait_on_watcher(self._read_watcher, None, None, self.hub)
Ejemplo n.º 6
0
 def recv(self, size):
     while True:
         try:
             data = _read(self.fileno(), size)
         except (IOError, OSError) as ex:
             code = ex.args[0]
             if code not in ignored_errors:
                 raise
             sys.exc_clear()
         else:
             if not self._translate or not data:
                 return data
             if self._eat_newline:
                 self._eat_newline = False
                 if data.startswith(b'\n'):
                     data = data[1:]
                     if not data:
                         return self.recv(size)
             if data.endswith(b'\r'):
                 self._eat_newline = True
             return self._translate_newlines(data)
         self.hub.wait(self._read_event)
Ejemplo n.º 7
0
 def recv(self, size):
     while True:
         try:
             data = _read(self.fileno(), size)
         except (IOError, OSError) as ex:
             code = ex.args[0]
             if code not in ignored_errors:
                 raise
             sys.exc_clear()
         else:
             if not self._translate or not data:
                 return data
             if self._eat_newline:
                 self._eat_newline = False
                 if data.startswith('\n'):
                     data = data[1:]
                     if not data:
                         return self.recv(size)
             if data.endswith('\r'):
                 self._eat_newline = True
             return self._translate_newlines(data)
         self.hub.wait(self._read_event)