Copy of my email to python-dev:
https://mail.python.org/archives/list/python-dev@python.org/thread/NMLGCDRUKLZSTK4UICJTKR54WRXU2ZGJ/
Hi,
Does anyone use threading debug PYTHONTHREADDEBUG=1 env var on a
Python debug build? If not, can I just remove it?
--
To fix a race condition at thread exit on Linux using the glibc, I
removed calls to pthread_exit() (PyThread_exit_thread()) in the
_thread module:
https://bugs.python.org/issue44434
A side effect of this change is the removal of the
"PyThread_exit_thread called" threading debug log when using
PYTHONTHREADDEBUG=1 environment variable.
I never used PYTHONTHREADDEBUG. I just tried it and it produces tons
of output in stdout about locks. It looks basically useless because it
produces way too many logs, and it pollutes stdout (ex: most Python
tests fail when it's enabled).
This debug mode requires to build Python in debug mode (./configure
--with-pydebug):
https://docs.python.org/dev/using/configure.html#python-debug-build
IMO there are enough external debugging tools to debug threading
issues. Python no longer has to come with its built-in logs.
I propose to deprecate the feature in Python 3.11 and remove it in 2
releases (Python 3.13).
Victor |