Author: Amaury Forgeot d'Arc <[email protected]>
Branch:
Changeset: r57355:c23cd52909fb
Date: 2012-09-15 19:46 +0200
http://bitbucket.org/pypy/pypy/changeset/c23cd52909fb/
Log: Don't release the GIL when calling internal init functions! Fixes a
crash when importing cpyext or the first extension module while a
thread is running.
diff --git a/pypy/module/cpyext/api.py b/pypy/module/cpyext/api.py
--- a/pypy/module/cpyext/api.py
+++ b/pypy/module/cpyext/api.py
@@ -636,9 +636,12 @@
globals()['va_get_%s' % name_no_star] = func
def setup_init_functions(eci):
- init_buffer = rffi.llexternal('init_bufferobject', [], lltype.Void,
compilation_info=eci)
- init_pycobject = rffi.llexternal('init_pycobject', [], lltype.Void,
compilation_info=eci)
- init_capsule = rffi.llexternal('init_capsule', [], lltype.Void,
compilation_info=eci)
+ init_buffer = rffi.llexternal('init_bufferobject', [], lltype.Void,
+ compilation_info=eci, _nowrapper=True)
+ init_pycobject = rffi.llexternal('init_pycobject', [], lltype.Void,
+ compilation_info=eci, _nowrapper=True)
+ init_capsule = rffi.llexternal('init_capsule', [], lltype.Void,
+ compilation_info=eci, _nowrapper=True)
INIT_FUNCTIONS.extend([
lambda space: init_buffer(),
lambda space: init_pycobject(),
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit