diff options
author | Benjamin Peterson <benjamin@python.org> | 2008-08-18 17:45:09 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2008-08-18 17:45:09 (GMT) |
commit | cbae8697599b690effd91be411fe4891ff8b52ad (patch) | |
tree | 05686632fffc28f7932d8e2abbc0118b3036ac71 | |
parent | d8a8972ca955202cb895a48f6d78b17c37f1d1ce (diff) | |
download | cpython-cbae8697599b690effd91be411fe4891ff8b52ad.zip cpython-cbae8697599b690effd91be411fe4891ff8b52ad.tar.gz cpython-cbae8697599b690effd91be411fe4891ff8b52ad.tar.bz2 |
backport threading property changes
-rw-r--r-- | Lib/test/test_threading.py | 12 | ||||
-rw-r--r-- | Lib/threading.py | 30 |
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: |