mirror of
https://github.com/python/cpython.git
synced 2025-08-12 12:58:50 +00:00
Merged revisions 70897 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r70897 | benjamin.peterson | 2009-03-31 16:34:42 -0500 (Tue, 31 Mar 2009) | 1 line fix Thread.ident when it is the main thread or a dummy thread #5632 ........
This commit is contained in:
parent
a6f278cfa2
commit
61611f84c9
3 changed files with 22 additions and 1 deletions
|
@ -83,11 +83,24 @@ class ThreadTests(unittest.TestCase):
|
||||||
t.join(NUMTASKS)
|
t.join(NUMTASKS)
|
||||||
self.assert_(not t.is_alive())
|
self.assert_(not t.is_alive())
|
||||||
self.failIfEqual(t.ident, 0)
|
self.failIfEqual(t.ident, 0)
|
||||||
|
self.assertFalse(t.ident is None)
|
||||||
self.assert_(re.match('<TestThread\(.*, \w+ -?\d+\)>', repr(t)))
|
self.assert_(re.match('<TestThread\(.*, \w+ -?\d+\)>', repr(t)))
|
||||||
if verbose:
|
if verbose:
|
||||||
print 'all tasks done'
|
print 'all tasks done'
|
||||||
self.assertEqual(numrunning.get(), 0)
|
self.assertEqual(numrunning.get(), 0)
|
||||||
|
|
||||||
|
def test_ident_of_no_threading_threads(self):
|
||||||
|
# The ident still must work for the main thread and dummy threads.
|
||||||
|
self.assertFalse(threading.currentThread().ident is None)
|
||||||
|
def f():
|
||||||
|
ident.append(threading.currentThread().ident)
|
||||||
|
done.set()
|
||||||
|
done = threading.Event()
|
||||||
|
ident = []
|
||||||
|
thread.start_new_thread(f, ())
|
||||||
|
done.wait()
|
||||||
|
self.assertFalse(ident[0] is None)
|
||||||
|
|
||||||
# run with a small(ish) thread stack size (256kB)
|
# run with a small(ish) thread stack size (256kB)
|
||||||
def test_various_ops_small_stack(self):
|
def test_various_ops_small_stack(self):
|
||||||
if verbose:
|
if verbose:
|
||||||
|
|
|
@ -500,9 +500,12 @@ class Thread(_Verbose):
|
||||||
return
|
return
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
def _set_ident(self):
|
||||||
|
self.__ident = _get_ident()
|
||||||
|
|
||||||
def __bootstrap_inner(self):
|
def __bootstrap_inner(self):
|
||||||
try:
|
try:
|
||||||
self.__ident = _get_ident()
|
self._set_ident()
|
||||||
self.__started.set()
|
self.__started.set()
|
||||||
_active_limbo_lock.acquire()
|
_active_limbo_lock.acquire()
|
||||||
_active[self.__ident] = self
|
_active[self.__ident] = self
|
||||||
|
@ -734,6 +737,7 @@ class _MainThread(Thread):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
Thread.__init__(self, name="MainThread")
|
Thread.__init__(self, name="MainThread")
|
||||||
self._Thread__started.set()
|
self._Thread__started.set()
|
||||||
|
self._set_ident()
|
||||||
_active_limbo_lock.acquire()
|
_active_limbo_lock.acquire()
|
||||||
_active[_get_ident()] = self
|
_active[_get_ident()] = self
|
||||||
_active_limbo_lock.release()
|
_active_limbo_lock.release()
|
||||||
|
@ -780,6 +784,7 @@ class _DummyThread(Thread):
|
||||||
del self._Thread__block
|
del self._Thread__block
|
||||||
|
|
||||||
self._Thread__started.set()
|
self._Thread__started.set()
|
||||||
|
self._set_ident()
|
||||||
_active_limbo_lock.acquire()
|
_active_limbo_lock.acquire()
|
||||||
_active[_get_ident()] = self
|
_active[_get_ident()] = self
|
||||||
_active_limbo_lock.release()
|
_active_limbo_lock.release()
|
||||||
|
|
|
@ -92,6 +92,9 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #5632: Thread.ident was None for the main thread and threads not created
|
||||||
|
with the threading module.
|
||||||
|
|
||||||
- Issue #5400: Added patch for multiprocessing on netbsd compilation/support
|
- Issue #5400: Added patch for multiprocessing on netbsd compilation/support
|
||||||
|
|
||||||
- Fix and properly document the multiprocessing module's logging
|
- Fix and properly document the multiprocessing module's logging
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue