diff --git a/cista/app.py b/cista/app.py index 49e33cf..1dbfa96 100644 --- a/cista/app.py +++ b/cista/app.py @@ -8,6 +8,8 @@ from pathlib import Path, PurePath, PurePosixPath from stat import S_IFDIR, S_IFREG from urllib.parse import unquote from wsgiref.handlers import format_date_time +import multiprocessing +import sys import brotli import sanic.helpers @@ -31,9 +33,24 @@ app.blueprint(bp) app.exception(Exception)(handle_sanic_exception) +def procname(name): + if sys.platform == "linux": + from ctypes import cdll, byref, create_string_buffer + + newname = name.encode() + libc = cdll.LoadLibrary("libc.so.6") + buff = create_string_buffer(len(newname) + 1) + buff.value = newname + libc.prctl(15, byref(buff), 0, 0, 0) + + +procname("cista-main") + + @app.before_server_start async def main_start(app, loop): config.load_config() + procname(f"cista {config.config.path.name}") N = max(2, min(8, cpu_count())) app.ctx.threadexec = ThreadPoolExecutor( max_workers=N, thread_name_prefix="cista-ioworker"