summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2008-08-18 17:45:09 (GMT)
committerBenjamin Peterson <benjamin@python.org>2008-08-18 17:45:09 (GMT)
commitcbae8697599b690effd91be411fe4891ff8b52ad (patch)
tree05686632fffc28f7932d8e2abbc0118b3036ac71
parentd8a8972ca955202cb895a48f6d78b17c37f1d1ce (diff)
downloadcpython-cbae8697599b690effd91be411fe4891ff8b52ad.zip
cpython-cbae8697599b690effd91be411fe4891ff8b52ad.tar.gz
cpython-cbae8697599b690effd91be411fe4891ff8b52ad.tar.bz2
backport threading property changes
-rw-r--r--Lib/test/test_threading.py12
-rw-r--r--Lib/threading.py30
2 files changed, 18 insertions, 24 deletions
diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
index 7c3d90b..4e87437 100644
--- a/Lib/test/test_threading.py
+++ b/Lib/test/test_threading.py
@@ -34,7 +34,7 @@ class TestThread(threading.Thread):
delay = random.random() / 10000.0
if verbose:
print 'task %s will run for %.1f usec' % (
- self.get_name(), delay * 1e6)
+ self.name, delay * 1e6)
with self.sema:
with self.mutex:
@@ -45,14 +45,14 @@ class TestThread(threading.Thread):
time.sleep(delay)
if verbose:
- print 'task', self.get_name(), 'done'
+ print 'task', self.name, 'done'
with self.mutex:
self.nrunning.dec()
self.testcase.assert_(self.nrunning.get() >= 0)
if verbose:
print '%s is finished. %d tasks are running' % (
- self.get_name(), self.nrunning.get())
+ self.name, self.nrunning.get())
class ThreadTests(unittest.TestCase):
@@ -172,7 +172,7 @@ class ThreadTests(unittest.TestCase):
worker_saw_exception.set()
t = Worker()
- t.set_daemon(True) # so if this fails, we don't hang Python at shutdown
+ t.daemon = True # so if this fails, we don't hang Python at shutdown
t.start()
if verbose:
print " started worker thread"
@@ -258,7 +258,7 @@ class ThreadTests(unittest.TestCase):
print 'program blocked; aborting'
os._exit(2)
t = threading.Thread(target=killer)
- t.set_daemon(True)
+ t.daemon = True
t.start()
# This is the trace function
@@ -435,7 +435,7 @@ class ThreadingExceptionTests(unittest.TestCase):
def test_daemonize_active_thread(self):
thread = threading.Thread()
thread.start()
- self.assertRaises(RuntimeError, thread.set_daemon, True)
+ self.assertRaises(RuntimeError, setattr, thread, "daemon", True)
def test_main():
diff --git a/Lib/threading.py b/Lib/threading.py
index e1a0b2a..c393fe5 100644
--- a/Lib/threading.py
+++ b/Lib/threading.py
@@ -445,7 +445,7 @@ class Thread(_Verbose):
def _set_daemon(self):
# Overridden in _MainThread and _DummyThread
- return current_thread().is_daemon()
+ return current_thread().daemon
def __repr__(self):
assert self.__initialized, "Thread.__init__() was not called"
@@ -651,18 +651,16 @@ class Thread(_Verbose):
finally:
self.__block.release()
- def get_name(self):
+ @property
+ def name(self):
assert self.__initialized, "Thread.__init__() not called"
return self.__name
- getName = _old_api(get_name, "getName")
-
- def set_name(self, name):
+ @name.setter
+ def name(self, name):
assert self.__initialized, "Thread.__init__() not called"
self.__name = str(name)
- setName = _old_api(set_name, "setName")
-
@property
def ident(self):
assert self.__initialized, "Thread.__init__() not called"
@@ -672,23 +670,19 @@ 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):
+ @property
+ def daemon(self):
assert self.__initialized, "Thread.__init__() not called"
return self.__daemonic
- isDaemon = _old_api(is_daemon, "isDaemon")
-
- def set_daemon(self, daemonic):
+ @daemon.setter
+ def daemon(self, daemonic):
if not self.__initialized:
raise RuntimeError("Thread.__init__() not called")
if self.__started.is_set():
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):
@@ -750,7 +744,7 @@ class _MainThread(Thread):
def _pickSomeNonDaemonThread():
for t in enumerate():
- if not t.is_daemon() and t.is_alive():
+ if not t.daemon and t.is_alive():
return t
return None
@@ -906,7 +900,7 @@ def _test():
counter = 0
while counter < self.quota:
counter = counter + 1
- self.queue.put("%s.%d" % (self.get_name(), counter))
+ self.queue.put("%s.%d" % (self.name, counter))
_sleep(random() * 0.00001)
@@ -931,7 +925,7 @@ def _test():
P = []
for i in range(NP):
t = ProducerThread(Q, NI)
- t.setName("Producer-%d" % (i+1))
+ t.name = ("Producer-%d" % (i+1))
P.append(t)
C = ConsumerThread(Q, NI*NP)
for t in P: