diff --git a/src/blackd/__init__.py b/src/blackd/__init__.py index d51b9ce..86309da 100644 --- a/src/blackd/__init__.py +++ b/src/blackd/__init__.py @@ -2,7 +2,7 @@ import logging from concurrent.futures import Executor, ProcessPoolExecutor from datetime import datetime, timezone -from functools import partial +from functools import cache, partial from multiprocessing import freeze_support try: @@ -85,12 +85,16 @@ def main(bind_host: str, bind_port: int) -> None: web.run_app(app, host=bind_host, port=bind_port, handle_signals=True, print=None) +@cache +def executor() -> Executor: + return ProcessPoolExecutor() + + def make_app() -> web.Application: app = web.Application( middlewares=[cors(allow_headers=(*BLACK_HEADERS, "Content-Type"))] ) - executor = ProcessPoolExecutor() - app.add_routes([web.post("/", partial(handle, executor=executor))]) + app.add_routes([web.post("/", partial(handle, executor=executor()))]) return app