From: Min RK Date: Thu, 1 Aug 2019 11:51:12 +0000 (+0200) Subject: iostream: resolve reads that may be completed while closing X-Git-Tag: v6.1.0b1~39^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a772ed991531ba442a8d1bd090b91fd42b6b09de;p=thirdparty%2Ftornado.git iostream: resolve reads that may be completed while closing fixes issue that a read may fail with StreamClosedError if stream is closed mid-read --- diff --git a/tornado/iostream.py b/tornado/iostream.py index 89d87a566..d8f390371 100644 --- a/tornado/iostream.py +++ b/tornado/iostream.py @@ -599,6 +599,11 @@ class BaseIOStream(object): if self._read_until_close: self._read_until_close = False self._finish_read(self._read_buffer_size, False) + elif self._read_future is not None: + # resolve reads that are pending and ready to complete + pos = self._find_read_pos() + if pos is not None: + self._read_from_buffer(pos) if self._state is not None: self.io_loop.remove_handler(self.fileno()) self._state = None