From cad53556a5ea1205927108ddcf9e1f0a5ed971d2 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sun, 12 Nov 2023 18:17:17 -0600 Subject: [PATCH] dashboard: Run get_serial_ports in the executor get_serial_ports does blocking I/O and should not be running in tornado event loop --- esphome/dashboard/dashboard.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/esphome/dashboard/dashboard.py b/esphome/dashboard/dashboard.py index 5967c95aba..fc7d772aac 100644 --- a/esphome/dashboard/dashboard.py +++ b/esphome/dashboard/dashboard.py @@ -509,8 +509,8 @@ class EsphomeUpdateAllHandler(EsphomeCommandWebSocket): class SerialPortRequestHandler(BaseHandler): @authenticated - def get(self): - ports = get_serial_ports() + async def get(self): + ports = await tornado.ioloop.IOLoop.run_in_executor(None, get_serial_ports) data = [] for port in ports: desc = port.description