Dmitri Bogomolov
7a89109fc9
and use logging without risk of circular import. Only subpackage that imports from debug is bitmessageqt - because it also uses debug.resetLogging(). Instead of from debug import logger is now recommended to use: import logging logger = logging.getLogger('default') All subclasses of StoppableThread now have a logger attribute. All threading related stuff except for set_thread_name() was moved from helper_threading to network.threads. Fixed two my mistakes from previous edit of debug in a1a8d3a: - logger.handlers is not dict but iterable - sys.excepthook should be set unconditionally
22 lines
675 B
Python
22 lines
675 B
Python
"""set_thread_name for threads that don't use StoppableThread"""
|
|
|
|
import threading
|
|
|
|
try:
|
|
import prctl
|
|
except ImportError:
|
|
def set_thread_name(name):
|
|
"""Set the thread name for external use (visible from the OS)."""
|
|
threading.current_thread().name = name
|
|
else:
|
|
def set_thread_name(name):
|
|
"""Set a name for the thread for python internal use."""
|
|
prctl.set_name(name)
|
|
|
|
def _thread_name_hack(self):
|
|
set_thread_name(self.name)
|
|
threading.Thread.__bootstrap_original__(self)
|
|
|
|
threading.Thread.__bootstrap_original__ = threading.Thread._Thread__bootstrap
|
|
threading.Thread._Thread__bootstrap = _thread_name_hack
|