]> granicus.if.org Git - python/commit
Try to repair at least one segfault on the Mac buildbot,
authorTim Peters <tim.peters@gmail.com>
Tue, 21 Mar 2006 03:58:41 +0000 (03:58 +0000)
committerTim Peters <tim.peters@gmail.com>
Tue, 21 Mar 2006 03:58:41 +0000 (03:58 +0000)
commit59b96c1029290822b7069634fce4628b19b2d4ca
treeddc6d1734285e2c68e80e9d849cf62f529b88cab
parent66760f87b51662d95a0d13226712d83a7ab049f8
Try to repair at least one segfault on the Mac buildbot,
as diagnosed by Nick Coghlan.

test_capi.py:  A test module should never spawn a thread as
a side effect of being imported.  Because this one did, the
segfault one of its thread tests caused didn't occur until
a few tests after test_regrtest.py thought test_capi was
finished.  Repair that.  Also join() the thread spawned
at the end, so that test_capi is truly finished when
regrtest reports that it's done.

_testcapimodule.c test_thread_state():  this spawns a
couple of non-threading.py threads, passing them a PyObject*
argument, but did nothing to ensure that those threads
finished before returning.  As a result, the PyObject*
_could_ (although this was unlikely) get decref'ed out of
existence before the threads got around to using it.
Added explicit synchronization (via a Python mutex) so
that test_thread_state can reliably wait for its spawned
threads to finish.
Lib/test/test_capi.py
Modules/_testcapimodule.c