Clients: fix high CPU usage when launched via MultiProcessing (#4209)

* Core: make Utils.stream_input not consume all CPU for non-blocking streams

* Clients: ignore MultiProcessing pipe as input console
This commit is contained in:
black-sliver
2024-11-18 15:59:17 +01:00
committed by GitHub
parent 01c6037562
commit 3ae8992fb6
2 changed files with 8 additions and 0 deletions

View File

@@ -18,6 +18,7 @@ import warnings
from argparse import Namespace
from settings import Settings, get_settings
from time import sleep
from typing import BinaryIO, Coroutine, Optional, Set, Dict, Any, Union
from typing_extensions import TypeGuard
from yaml import load, load_all, dump
@@ -568,6 +569,8 @@ def stream_input(stream: typing.TextIO, queue: "asyncio.Queue[str]"):
else:
if text:
queue.put_nowait(text)
else:
sleep(0.01) # non-blocking stream
from threading import Thread
thread = Thread(target=queuer, name=f"Stream handler for {stream.name}", daemon=True)