stdpy: recognize daemon=True argument in Thread constructor

This commit is contained in:
rdb 2019-12-28 23:46:58 +01:00
parent 5eb40b9061
commit 2f31c9ce68
2 changed files with 11 additions and 5 deletions

View File

@ -87,7 +87,7 @@ class Thread(ThreadBase):
object. The wrapper is designed to emulate Python's own
threading.Thread object. """
def __init__(self, group=None, target=None, name=None, args=(), kwargs={}):
def __init__(self, group=None, target=None, name=None, args=(), kwargs={}, daemon=None):
ThreadBase.__init__(self)
assert group is None
@ -99,7 +99,10 @@ class Thread(ThreadBase):
name = _newname()
current = current_thread()
self.__dict__['daemon'] = current.daemon
if daemon is not None:
self.__dict__['daemon'] = daemon
else:
self.__dict__['daemon'] = current.daemon
self.__dict__['name'] = name
def call_run():

View File

@ -396,7 +396,7 @@ class Thread(_Verbose):
__exc_info = _sys.exc_info
def __init__(self, group=None, target=None, name=None,
args=(), kwargs=None, verbose=None):
args=(), kwargs=None, verbose=None, daemon=None):
assert group is None, "group argument must be None for now"
_Verbose.__init__(self, verbose)
if kwargs is None:
@ -405,7 +405,10 @@ class Thread(_Verbose):
self.__name = str(name or _newname())
self.__args = args
self.__kwargs = kwargs
self.__daemonic = self._set_daemon()
if daemon is not None:
self.__daemonic = daemon
else:
self.__daemonic = self._set_daemon()
self.__started = False
self.__stopped = False
self.__block = Condition(Lock())
@ -670,7 +673,7 @@ class _MainThread(Thread):
class _DummyThread(Thread):
def __init__(self):
Thread.__init__(self, name=_newname("Dummy-%d"))
Thread.__init__(self, name=_newname("Dummy-%d"), daemon=True)
# Thread.__block consumes an OS-level locking primitive, which
# can never be used by a _DummyThread. Since a _DummyThread