def read_transport(self, n, timeout_sec): if self._proc is None: raise server.TransportClosedError() fd = self._proc.stdout.fileno() end_time = None if timeout_sec is None else time.monotonic( ) + timeout_sec try: self._await_ready([fd], [], end_time=end_time) to_return = os.read(fd, n) except BrokenPipeError: to_return = 0 if not to_return: self.disconnect_transport() raise server.TransportClosedError() return to_return
def write_transport(self, data, timeout_sec): if self._proc is None: raise server.TransportClosedError() fd = self._proc.stdin.fileno() end_time = None if timeout_sec is None else time.monotonic( ) + timeout_sec data_len = len(data) while data: self._await_ready([], [fd], end_time=end_time) try: num_written = os.write(fd, data) except BrokenPipeError: num_written = 0 if not num_written: self.disconnect_transport() raise server.TransportClosedError() data = data[num_written:]
def write_transport(self, data, timeout_sec): if self._serial is None: raise server.TransportClosedError() return self._serial.write(data)
def read_transport(self, n, timeout_sec): # It's hard to set timeout_sec, so we just throw it away # TODO fix this if self._serial is None: raise server.TransportClosedError() return self._serial.read(n)
def read_transport(self, n, timeout_sec): if self._transport is None: raise server.TransportClosedError() return self._transport.read(n, timeout_sec)
def read_transport(self, n, timeout_sec): self._serial.timeout = timeout_sec if self._serial is None: raise server.TransportClosedError() return self._serial.read(n)