[Python-checkins] r65822 - in python/trunk/Lib: test/test_threading.py threading.py

benjamin.peterson python-checkins at python.org
Mon Aug 18 19:45:09 CEST 2008


Author: benjamin.peterson
Date: Mon Aug 18 19:45:09 2008
New Revision: 65822

Log:
backport threading property changes

Modified:
   python/trunk/Lib/test/test_threading.py
   python/trunk/Lib/threading.py

Modified: python/trunk/Lib/test/test_threading.py
==============================================================================
--- python/trunk/Lib/test/test_threading.py	(original)
+++ python/trunk/Lib/test/test_threading.py	Mon Aug 18 19:45:09 2008
@@ -34,7 +34,7 @@
         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 @@
 
             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 @@
                     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 @@
                 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 @@
     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():

Modified: python/trunk/Lib/threading.py
==============================================================================
--- python/trunk/Lib/threading.py	(original)
+++ python/trunk/Lib/threading.py	Mon Aug 18 19:45:09 2008
@@ -445,7 +445,7 @@
 
     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 @@
         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 @@
         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 @@
 
 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 @@
             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 @@
     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:


More information about the Python-checkins mailing list