Compare commits

...

4 Commits

Author SHA1 Message Date
Erik Johnston
4f91482092 More logging 2024-06-19 11:00:08 +01:00
Erik Johnston
9e46ea43f4 Make warning 2024-06-19 10:50:01 +01:00
Erik Johnston
e25062ed75 More logging 2024-06-19 10:46:58 +01:00
Erik Johnston
afc675ba86 Time atexit freeze 2024-06-19 10:43:33 +01:00

View File

@@ -25,6 +25,7 @@ import os
import signal
import socket
import sys
import time
import traceback
import warnings
from textwrap import indent
@@ -531,7 +532,13 @@ async def start(hs: "HomeServer") -> None:
# numbers of DNS requests don't starve out other users of the threadpool.
resolver_threadpool = ThreadPool(name="gai_resolver")
resolver_threadpool.start()
reactor.addSystemEventTrigger("during", "shutdown", resolver_threadpool.stop)
def stop_threadpool() -> None:
logger.warning("Stopping thread pool...")
resolver_threadpool.stop()
logger.warning("Stopped thread pool")
reactor.addSystemEventTrigger("during", "shutdown", stop_threadpool)
reactor.installNameResolver(
GAIResolver(reactor, getThreadPool=lambda: resolver_threadpool)
)
@@ -624,9 +631,18 @@ async def start(hs: "HomeServer") -> None:
gc.collect()
gc.freeze()
def exit() -> None:
logger.warning("Doing FREEZE")
start = time.time()
gc.freeze()
end = time.time()
logger.warning("GC freeze took %d ms", (end - start) * 1000)
# Speed up shutdowns by freezing all allocated objects. This moves everything
# into the permanent generation and excludes them from the final GC.
atexit.register(gc.freeze)
atexit.register(exit)
def reload_cache_config(config: HomeServerConfig) -> None: