mirror of
https://github.com/python/cpython.git
synced 2025-07-28 21:55:21 +00:00
add aliases to threading module
This commit is contained in:
parent
0fbcf69455
commit
f439560265
3 changed files with 50 additions and 3 deletions
|
@ -9,6 +9,8 @@ except ImportError:
|
|||
raise
|
||||
|
||||
import warnings
|
||||
|
||||
from functools import wraps
|
||||
from time import time as _time, sleep as _sleep
|
||||
from traceback import format_exc as _format_exc
|
||||
from collections import deque
|
||||
|
@ -31,6 +33,18 @@ warnings.filterwarnings('ignore', category=DeprecationWarning,
|
|||
module='threading', message='sys.exc_clear')
|
||||
|
||||
|
||||
def _old_api(callable, old_name):
|
||||
if not _sys.py3kwarning:
|
||||
return callable
|
||||
@wraps(callable)
|
||||
def old(*args, **kwargs):
|
||||
warnings.warnpy3k("In 3.x, {0} is renamed to {1}."
|
||||
.format(old_name, callable.__name__),
|
||||
stacklevel=3)
|
||||
return callable(*args, **kwargs)
|
||||
old.__name__ = old_name
|
||||
return old
|
||||
|
||||
# Debug support (adapted from ihooks.py).
|
||||
# All the major classes here derive from _Verbose. We force that to
|
||||
# be a new-style class so that all the major classes here are new-style.
|
||||
|
@ -274,6 +288,8 @@ class _Condition(_Verbose):
|
|||
def notify_all(self):
|
||||
self.notify(len(self.__waiters))
|
||||
|
||||
notifyAll = _old_api(notify_all, "notifyAll")
|
||||
|
||||
|
||||
def Semaphore(*args, **kwargs):
|
||||
return _Semaphore(*args, **kwargs)
|
||||
|
@ -353,6 +369,8 @@ class _Event(_Verbose):
|
|||
def is_set(self):
|
||||
return self.__flag
|
||||
|
||||
isSet = _old_api(is_set, "isSet")
|
||||
|
||||
def set(self):
|
||||
self.__cond.acquire()
|
||||
try:
|
||||
|
@ -635,10 +653,14 @@ class Thread(_Verbose):
|
|||
assert self.__initialized, "Thread.__init__() not called"
|
||||
return self.__name
|
||||
|
||||
getName = _old_api(get_name, "getName")
|
||||
|
||||
def set_name(self, name):
|
||||
assert self.__initialized, "Thread.__init__() not called"
|
||||
self.__name = str(name)
|
||||
|
||||
setName = _old_api(set_name, "setName")
|
||||
|
||||
def get_ident(self):
|
||||
assert self.__initialized, "Thread.__init__() not called"
|
||||
return self.__ident
|
||||
|
@ -647,10 +669,14 @@ class Thread(_Verbose):
|
|||
assert self.__initialized, "Thread.__init__() not called"
|
||||
return self.__started.is_set() and not self.__stopped
|
||||
|
||||
isAlive = _old_api(is_alive, "isAlive")
|
||||
|
||||
def is_daemon(self):
|
||||
assert self.__initialized, "Thread.__init__() not called"
|
||||
return self.__daemonic
|
||||
|
||||
isDaemon = _old_api(is_daemon, "isDaemon")
|
||||
|
||||
def set_daemon(self, daemonic):
|
||||
if not self.__initialized:
|
||||
raise RuntimeError("Thread.__init__() not called")
|
||||
|
@ -658,6 +684,8 @@ class Thread(_Verbose):
|
|||
raise RuntimeError("cannot set daemon status of active thread");
|
||||
self.__daemonic = daemonic
|
||||
|
||||
setDaemon = _old_api(set_daemon, "setDaemon")
|
||||
|
||||
# The timer class was contributed by Itamar Shtull-Trauring
|
||||
|
||||
def Timer(*args, **kwargs):
|
||||
|
@ -763,12 +791,16 @@ def current_thread():
|
|||
##print "current_thread(): no current thread for", _get_ident()
|
||||
return _DummyThread()
|
||||
|
||||
currentThread = _old_api(current_thread, "currentThread")
|
||||
|
||||
def active_count():
|
||||
_active_limbo_lock.acquire()
|
||||
count = len(_active) + len(_limbo)
|
||||
_active_limbo_lock.release()
|
||||
return count
|
||||
|
||||
activeCount = _old_api(active_count, "activeCount")
|
||||
|
||||
def enumerate():
|
||||
_active_limbo_lock.acquire()
|
||||
active = _active.values() + _limbo.values()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue