Message197248
I think I've found the answer: the thread is sometimes already stopped by the time the child is forked, so it doesn't appear in _enumerate() anymore (it left the _active dict). Therefore its locks are not reset in _after_fork().
Oh, I also get the following sporadic failure which is triggered by slight change in semantics with Thread.join(timeout) :-)
======================================================================
FAIL: test_various_ops (test.test_threading.ThreadTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/antoine/cpython/default/Lib/test/test_threading.py", line 113, in test_various_ops
self.assertTrue(not t.is_alive())
AssertionError: False is not true |
|
Date |
User |
Action |
Args |
2013-09-08 11:08:14 | pitrou | set | recipients:
+ pitrou, tim.peters, jcea, csernazs, ncoghlan, grahamd, neologix, python-dev, bkabrda, Tamas.K |
2013-09-08 11:08:14 | pitrou | set | messageid: <1378638494.85.0.0355846143947.issue18808@psf.upfronthosting.co.za> |
2013-09-08 11:08:14 | pitrou | link | issue18808 messages |
2013-09-08 11:08:14 | pitrou | create | |
|