Fix StreamWriter doesn't have the wait_closed() method in Python3.6. Fixes #2170

This commit is contained in:
grossmj 2023-01-20 13:14:57 +08:00
parent 3c2ae5363c
commit a7d19fd89a
2 changed files with 7 additions and 3 deletions

View File

@ -408,7 +408,8 @@ class BaseNode:
if self._wrapper_telnet_server:
self._wrap_console_writer.close()
await self._wrap_console_writer.wait_closed()
if sys.version_info >= (3, 7, 0):
await self._wrap_console_writer.wait_closed()
self._wrapper_telnet_server.close()
await self._wrapper_telnet_server.wait_closed()
self._wrapper_telnet_server = None

View File

@ -15,6 +15,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import sys
import socket
import asyncio
import asyncio.subprocess
@ -202,7 +203,8 @@ class AsyncioTelnetServer:
except ConnectionError:
async with self._lock:
network_writer.close()
await network_writer.wait_closed()
if sys.version_info >= (3, 7, 0):
await network_writer.wait_closed()
if self._reader_process == network_reader:
self._reader_process = None
# Cancel current read from this reader
@ -218,7 +220,8 @@ class AsyncioTelnetServer:
writer.write_eof()
await writer.drain()
writer.close()
await writer.wait_closed()
if sys.version_info >= (3, 7, 0):
await writer.wait_closed()
except (AttributeError, ConnectionError):
continue