[Python-checkins] r51198 - python/trunk/Lib/test/test_threading.py

tim.peters python-checkins at python.org
Fri Aug 11 02:49:02 CEST 2006


Author: tim.peters
Date: Fri Aug 11 02:49:01 2006
New Revision: 51198

Modified:
   python/trunk/Lib/test/test_threading.py
Log:
test_PyThreadState_SetAsyncExc():  This is failing on some
64-bit boxes.  I have no idea what the ctypes docs mean
by "integers", and blind-guessing here that it intended to
mean the signed C "int" type, in which case perhaps I can
repair this by feeding the thread id argument to type
ctypes.c_long().

Also made the worker thread daemonic, so it doesn't hang
Python shutdown if the test continues to fail.


Modified: python/trunk/Lib/test/test_threading.py
==============================================================================
--- python/trunk/Lib/test/test_threading.py	(original)
+++ python/trunk/Lib/test/test_threading.py	Fri Aug 11 02:49:01 2006
@@ -169,14 +169,15 @@
                     worker_saw_exception.set()
 
         t = Worker()
+        t.setDaemon(True) # so if this fails, we don't hang Python at shutdown
+        t.start()
         if verbose:
             print "    started worker thread"
-        t.start()
 
         # Try a thread id that doesn't make sense.
         if verbose:
             print "    trying nonsensical thread id"
-        result = set_async_exc(-1, exception)
+        result = set_async_exc(ctypes.c_long(-1), exception)
         self.assertEqual(result, 0)  # no thread states modified
 
         # Now raise an exception in the worker thread.
@@ -188,7 +189,7 @@
         self.assert_(not t.finished)
         if verbose:
             print "    attempting to raise asynch exception in worker"
-        result = set_async_exc(t.id, exception)
+        result = set_async_exc(ctypes.c_long(t.id), exception)
         self.assertEqual(result, 1) # one thread state modified
         if verbose:
             print "    waiting for worker to say it caught the exception"


More information about the Python-checkins mailing list