From jython-checkins at python.org Sat Jul 20 00:37:09 2013 From: jython-checkins at python.org (jim.baker) Date: Sat, 20 Jul 2013 00:37:09 +0200 (CEST) Subject: [Jython-checkins] =?utf-8?q?jython=3A_Fixed_http=3A//bugs=2Ejytho?= =?utf-8?q?n=2Eorg/issue2060_by_adding_threading=2EThread=2Eident=2E?= Message-ID: <3bxnC95xpRz7Lk8@mail.python.org> http://hg.python.org/jython/rev/9ad4f341f030 changeset: 7112:9ad4f341f030 user: Jim Baker date: Fri Jul 19 16:37:37 2013 -0600 summary: Fixed http://bugs.jython.org/issue2060 by adding threading.Thread.ident. files: Lib/test/test_threading.py | 5 ++--- Lib/threading.py | 7 ++++++- src/org/python/modules/thread/thread.java | 3 +-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py --- a/Lib/test/test_threading.py +++ b/Lib/test/test_threading.py @@ -71,7 +71,6 @@ # Create a bunch of threads, let each do some work, wait until all are # done. - @unittest.skipIf(is_jython, "FIXME: not working on Jython") def test_various_ops(self): # This takes about n/3 seconds to run (about n/3 clumps of tasks, # times about 1 second per clump). @@ -87,8 +86,8 @@ for i in range(NUMTASKS): t = TestThread(""%i, self, sema, mutex, numrunning) threads.append(t) - self.assertEqual(t.ident, None) - self.assertTrue(re.match('', repr(t))) + self.assertIsNotNone(t.ident) # NOTE Java immediately assigns idents, unlike CPython + self.assertTrue(re.match('', repr(t))) t.start() if verbose: diff --git a/Lib/threading.py b/Lib/threading.py --- a/Lib/threading.py +++ b/Lib/threading.py @@ -99,7 +99,7 @@ _thread = self._thread status = ThreadStates[_thread.getState()] if _thread.isDaemon(): status + " daemon" - return "<%s(%s, %s)>" % (self.__class__.__name__, self.getName(), status) + return "<%s(%s, %s %s)>" % (self.__class__.__name__, self.getName(), status, self.ident) def __eq__(self, other): if isinstance(other, JavaThread): @@ -125,6 +125,11 @@ else: self._thread.join() + def ident(self): + return self._thread.getId() + + ident = property(ident) + def getName(self): return self._thread.getName() diff --git a/src/org/python/modules/thread/thread.java b/src/org/python/modules/thread/thread.java --- a/src/org/python/modules/thread/thread.java +++ b/src/org/python/modules/thread/thread.java @@ -90,10 +90,9 @@ } public static long get_ident() { - return Py.java_obj_id(Thread.currentThread()); + return Thread.currentThread().getId(); } - public static long stack_size(PyObject[] args) { switch (args.length) { case 0: -- Repository URL: http://hg.python.org/jython