fix: limit pool size when using run_in_executor()

This commit is contained in:
2026-07-06 22:40:40 +08:00
parent 1e8686c2a4
commit 04ce2efbeb
2 changed files with 23 additions and 2 deletions
+8 -1
View File
@@ -720,7 +720,12 @@ class Connection(ConnectionAttr):
serial_list (list[str]):
"""
import asyncio
from concurrent.futures import ThreadPoolExecutor
ev = asyncio.new_event_loop()
pool = ThreadPoolExecutor(
max_workers=len(serial_list),
thread_name_prefix='adb_brute_force_connect',
)
def _connect(serial):
msg = self.adb_client.connect(serial)
@@ -728,10 +733,12 @@ class Connection(ConnectionAttr):
return msg
async def connect():
tasks = [ev.run_in_executor(None, _connect, serial) for serial in serial_list]
tasks = [ev.run_in_executor(pool, _connect, serial) for serial in serial_list]
await asyncio.gather(*tasks)
ev.run_until_complete(connect())
pool.shutdown(wait=False)
ev.close()
@Config.when(DEVICE_OVER_HTTP=True)
def adb_connect(self):