Discussion:
[Python-3000-checkins] r65821 - in python/branches/py3k/Lib: test/test_threading.py threading.py
benjamin.peterson
2008-08-18 17:33:47 UTC
Permalink
Author: benjamin.peterson
Date: Mon Aug 18 19:33:47 2008
New Revision: 65821

Log:
change is_daemon, set_daemon, get_name, and set_name to properties

I'm add add warnings and backport this to 2.6 soon


Modified:
python/branches/py3k/Lib/test/test_threading.py
python/branches/py3k/Lib/threading.py

Modified: python/branches/py3k/Lib/test/test_threading.py
==============================================================================
--- python/branches/py3k/Lib/test/test_threading.py (original)
+++ python/branches/py3k/Lib/test/test_threading.py Mon Aug 18 19:33:47 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):
@@ -173,7 +173,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")
@@ -259,7 +259,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
@@ -437,7 +437,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/branches/py3k/Lib/threading.py
==============================================================================
--- python/branches/py3k/Lib/threading.py (original)
+++ python/branches/py3k/Lib/threading.py Mon Aug 18 19:33:47 2008
@@ -40,7 +40,7 @@
if self._verbose:
format = format % args
format = "%s: %s\n" % (
- current_thread().get_name(), format)
+ current_thread().name, format)
_sys.stderr.write(format)

else:
@@ -83,7 +83,7 @@
owner = self._owner
return "<%s(%s, %d)>" % (
self.__class__.__name__,
- owner and owner.get_name(),
+ owner and owner.name,
self._count)

def acquire(self, blocking=1):
@@ -412,7 +412,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"
@@ -502,7 +502,7 @@
# self.
if _sys:
_sys.stderr.write("Exception in thread %s:\n%s\n" %
- (self.get_name(), _format_exc()))
+ (self.name, _format_exc()))
else:
# Do the best job possible w/o a huge amt. of code to
# approximate a traceback (code ideas from
@@ -510,7 +510,7 @@
exc_type, exc_value, exc_tb = self._exc_info()
try:
print((
- "Exception in thread " + self.get_name() +
+ "Exception in thread " + self.name +
" (most likely raised during interpreter shutdown):"), file=self._stderr)
print((
"Traceback (most recent call last):"), file=self._stderr)
@@ -621,11 +621,13 @@
finally:
self._block.release()

- def get_name(self):
+ @property
+ def name(self):
assert self._initialized, "Thread.__init__() not called"
return self._name

- def set_name(self, name):
+ @name.setter
+ def name(self, name):
assert self._initialized, "Thread.__init__() not called"
self._name = str(name)

@@ -638,11 +640,13 @@
assert self._initialized, "Thread.__init__() not called"
return self._started.is_set() and not self._stopped

- def is_daemon(self):
+ @property
+ def daemon(self):
assert self._initialized, "Thread.__init__() not called"
return self._daemonic

- 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():
@@ -710,7 +714,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

@@ -863,7 +867,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)


@@ -888,7 +892,7 @@
P = []
for i in range(NP):
t = ProducerThread(Q, NI)
- t.set_name("Producer-%d" % (i+1))
+ t.name = "Producer-%d" % (i+1)
P.append(t)
C = ConsumerThread(Q, NI*NP)
for t in P:

Loading...