Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r78381:9f9765fe1fa0 Date: 2015-07-01 15:22 +0200 http://bitbucket.org/pypy/pypy/changeset/9f9765fe1fa0/
Log: Copy this thread initialization logic from module/_cffi_backend/ccallback.py diff --git a/pypy/module/_rawffi/callback.py b/pypy/module/_rawffi/callback.py --- a/pypy/module/_rawffi/callback.py +++ b/pypy/module/_rawffi/callback.py @@ -79,6 +79,14 @@ if tracker.DO_TRACING: addr = rffi.cast(lltype.Signed, self.ll_callback.ll_closure) tracker.trace_allocation(addr, self) + # + # We must setup the GIL here, in case the callback is invoked in + # some other non-Pythonic thread. This is the same as ctypes on + # CPython (but only when creating a callback; on CPython it occurs + # as soon as we import _ctypes) + if space.config.translation.thread: + from pypy.module.thread.os_thread import setup_threads + setup_threads(space) def free(self): if tracker.DO_TRACING: _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit