STINNER Victor added the comment:
Python 2.7 uses its own implementation of Thread Local Storage: see find_key()
in Python/thread.c. This implementation uses a lock and a chained list. A fork
only clones the current thread in the child process, all other threads are
"removed", so Python has to manually remove all TLS variables of the other
threads using PyThread_ReInitTLS().
I don't think that Python 3 is affected by such bug, since Python 3 uses native
TLS APIs like pthread pthread_{get,set}specific() on UNIX/BSD.
----------
nosy: +haypo
title: Python core crash during os.fork() on CentOS 6.5 (Python 2.7.13) ->
Crash in PyThread_ReInitTLS() in the child process after os.fork() on CentOS
6.5 (Python 2.7.13)
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue30967>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com