MCPcopy Index your code
hub / github.com/python/cpython / _write_send

Method _write_send

Lib/asyncio/selector_events.py:1142–1174  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1140 break
1141
1142 def _write_send(self):
1143 assert self._buffer, 'Data should not be empty'
1144 if self._conn_lost:
1145 return
1146 try:
1147 buffer = self._buffer.popleft()
1148 n = self._sock.send(buffer)
1149 if n != len(buffer):
1150 # Not all data was written
1151 self._buffer.appendleft(buffer[n:])
1152 self._buffer_size -= n
1153 except (BlockingIOError, InterruptedError):
1154 self._buffer.appendleft(buffer)
1155 return
1156 except (SystemExit, KeyboardInterrupt):
1157 raise
1158 except BaseException as exc:
1159 self._loop._remove_writer(self._sock_fd)
1160 self._buffer.clear()
1161 self._buffer_size = 0
1162 self._fatal_error(exc, 'Fatal write error on socket transport')
1163 if self._empty_waiter is not None:
1164 self._empty_waiter.set_exception(exc)
1165 else:
1166 self._maybe_resume_protocol() # May append to buffer.
1167 if not self._buffer:
1168 self._loop._remove_writer(self._sock_fd)
1169 if self._empty_waiter is not None:
1170 self._empty_waiter.set_result(None)
1171 if self._closing:
1172 self._call_connection_lost(None)
1173 elif self._eof:
1174 self._sock.shutdown(socket.SHUT_WR)
1175
1176 def write_eof(self):
1177 if self._closing or self._eof:

Callers

nothing calls this directly

Calls 9

_call_connection_lostMethod · 0.95
sendMethod · 0.45
_remove_writerMethod · 0.45
clearMethod · 0.45
_fatal_errorMethod · 0.45
set_exceptionMethod · 0.45
set_resultMethod · 0.45
shutdownMethod · 0.45

Tested by

no test coverage detected