]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-40089: Add _at_fork_reinit() method to locks (GH-19195)
authorVictor Stinner <vstinner@python.org>
Tue, 7 Apr 2020 21:11:49 +0000 (23:11 +0200)
committerGitHub <noreply@github.com>
Tue, 7 Apr 2020 21:11:49 +0000 (23:11 +0200)
commit87255be6964979b5abdc4b9dcf81cdcfdad6e753
tree30f3c5a680dd7ed6435841ecd38166de7654503e
parent48b069a003ba6c684a9ba78493fbbec5e89f10b8
bpo-40089: Add _at_fork_reinit() method to locks (GH-19195)

Add a private _at_fork_reinit() method to _thread.Lock,
_thread.RLock, threading.RLock and threading.Condition classes:
reinitialize the lock after fork in the child process; reset the lock
to the unlocked state.

Rename also the private _reset_internal_locks() method of
threading.Event to _at_fork_reinit().

* Add _PyThread_at_fork_reinit() private function. It is excluded
  from the limited C API.
* threading.Thread._reset_internal_locks() now calls
  _at_fork_reinit() on self._tstate_lock rather than creating a new
  Python lock object.
Include/pythread.h
Lib/test/lock_tests.py
Lib/threading.py
Misc/NEWS.d/next/Library/2020-03-27-16-54-29.bpo-40089.VTq_8s.rst [new file with mode: 0644]
Modules/_threadmodule.c
Modules/posixmodule.c
Python/thread_pthread.h