• Tim Peters's avatar
    Try to repair at least one segfault on the Mac buildbot, · 59b96c10
    Tim Peters yazdı
    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.
    59b96c10
_testcapimodule.c 17.9 KB