Message342973
in asyncio
when filedata than free memory(hardware)
will be memory out Or killed by OS
for buf in filedata:
transport.write(buf)
#to client
I try it todo:
abort transporting to protect application be killed by OS
modified selector_events.py
def _write_ready(self):
assert self._buffer, 'Data should not be empty'
if self._conn_lost:
return
try:
n = self._sock.send(self._buffer)
except (BlockingIOError, InterruptedError):
pass
except Exception as exc:
self._loop._remove_writer(self._sock_fd)
self._buffer.clear()
self._fatal_error(exc, 'Fatal write error on socket transport')
if self._empty_waiter is not None:
self._empty_waiter.set_exception(exc)
return
else:
try:
if n:
del self._buffer[:n]
self._maybe_resume_protocol() # May append to buffer.
if not self._buffer:
self._loop._remove_writer(self._sock_fd)
if self._empty_waiter is not None:
self._empty_waiter.set_result(None)
if self._closing:
self._call_connection_lost(None)
elif self._eof:
self._sock.shutdown(socket.SHUT_WR)
except Exception as exc: #(MemoryError)
self._buffer.clear()
self._loop._remove_writer(self._sock_fd)
self._fatal_error(exc, 'Fatal write error on Selector SocketTransport write ready')
if self._empty_waiter is not None:
self._empty_waiter.set_exception(exc)
return |
|
Date |
User |
Action |
Args |
2019-05-21 02:23:49 | viocal | set | recipients:
+ viocal, asvetlov, yselivanov |
2019-05-21 02:23:49 | viocal | set | messageid: <1558405429.22.0.902415488536.issue36981@roundup.psfhosted.org> |
2019-05-21 02:23:49 | viocal | link | issue36981 messages |
2019-05-21 02:23:49 | viocal | create | |
|