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
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 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)
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)
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)