X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=thread_utils.py;h=01755deafc1e7af9189026c2ae233c6146c7d494;hb=532df2c5b57c7517dfb3dddd8c1358fbadf8baf3;hp=22161275605d76a1199df8f18d536fd04e2fe17b;hpb=a4bf4d05230474ad14243d67ac7f8c938f670e58;p=python_utils.git diff --git a/thread_utils.py b/thread_utils.py index 2216127..01755de 100644 --- a/thread_utils.py +++ b/thread_utils.py @@ -1,10 +1,14 @@ #!/usr/bin/env python3 +# © Copyright 2021-2022, Scott Gasch + +"""Utilities for dealing with threads + threading.""" + import functools import logging import os import threading -from typing import Callable, Optional, Tuple +from typing import Any, Callable, Optional, Tuple # This module is commonly used by others in here and should avoid # taking any unnecessary dependencies back on them. @@ -60,7 +64,7 @@ def is_current_thread_main_thread() -> bool: def background_thread( - _funct: Optional[Callable], + _funct: Optional[Callable[..., Any]], ) -> Callable[..., Tuple[threading.Thread, threading.Event]]: """A function decorator to create a background thread. @@ -104,7 +108,7 @@ def background_thread( kwargs=kwa, ) thread.start() - logger.debug(f'Started thread {thread.name} tid={thread.ident}') + logger.debug('Started thread "%s" tid=%d', thread.name, thread.ident) return (thread, should_terminate) return inner_wrapper @@ -163,7 +167,7 @@ def periodically_invoke( newargs = (should_terminate, *args) thread = threading.Thread(target=helper_thread, args=newargs, kwargs=kwargs) thread.start() - logger.debug(f'Started thread {thread.name} tid={thread.ident}') + logger.debug('Started thread "%s" tid=%d', thread.name, thread.ident) return (thread, should_terminate) return wrapper_repeat