Skip to content

Commit 669b661

Browse files
writelines implementation
1 parent abd2dc3 commit 669b661

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

Lib/asyncio/selector_events.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1148,13 +1148,14 @@ def write_eof(self):
11481148
self._sock.shutdown(socket.SHUT_WR)
11491149

11501150
def writelines(self, list_of_data):
1151-
hasbuffer = len(self._buffer)
1152-
self._buffer.extend([memoryview(i) for i in list_of_data])
1153-
if not hasbuffer:
1154-
# Optimization: try to send now
1155-
self._write_ready()
1151+
if self._eof:
1152+
raise RuntimeError('Cannot call writelines() after write_eof()')
1153+
if self._empty_waiter is not None:
1154+
raise RuntimeError('unable to writelines; sendfile is in progress')
1155+
if not list_of_data:
11561156
return
1157-
self._maybe_pause_protocol()
1157+
self._buffer.extend([memoryview(i) for i in list_of_data])
1158+
self._loop._add_writer(self._sock_fd, self._write_ready)
11581159

11591160
def can_write_eof(self):
11601161
return True

Lib/test/test_asyncio/test_selector_events.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -810,7 +810,7 @@ def test_write_ready(self):
810810
self.sock.send.return_value = len(data)
811811

812812
transport = self.socket_transport()
813-
transport._buffer.extend(data)
813+
transport._buffer.append(data)
814814
self.loop._add_writer(7, transport._write_ready)
815815
transport._write_ready()
816816
self.assertTrue(self.sock.send.called)

0 commit comments

Comments
 (0)