gh-114315: Make threading.Lock a real class, not a factory function (#114479)

`threading.Lock` is now the underlying class and is constructable rather than the old
factory function. This allows for type annotations to refer to it which had no non-ugly
way to be expressed prior to this.

---------

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
This commit is contained in:
Nikita Sobolev 2024-01-25 22:46:32 +03:00 • committed by GitHub
parent b52fc70d1a
commit d96358ff9d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 52 additions and 14 deletions

View file

@ -534,9 +534,10 @@ All methods are executed atomically.
lock, subsequent attempts to acquire it block, until it is released; any
thread may release it.
Note that ``Lock`` is actually a factory function which returns an instance
of the most efficient version of the concrete Lock class that is supported
by the platform.
.. versionchanged:: 3.13
``Lock`` is now a class. In earlier Pythons, ``Lock`` was a factory
function which returned an instance of the underlying private lock
type.
.. method:: acquire(blocking=True, timeout=-1)