Today, I've built Python-2.6.5 form with ./configure --without-threads.
Then the PyGILState_{Ensure|Release} calls are missing!!! Could any
of you please confirm this??
Any Cython code using 'with gil' is then broken.
I implemented this fix in a helper C header file:
#if !defined(WITH_THREAD)
#undef PyGILState_Ensure
#define PyGILState_Ensure() ((PyGILState_STATE)0)
#undef PyGILState_Release
#define PyGILState_Release(state) (state)=((PyGILState_STATE)0)
#undef Py_BLOCK_THREADS
#define Py_BLOCK_THREADS (_save)=(PyThreadState*)0;
#undef Py_UNBLOCK_THREADS
#define Py_UNBLOCK_THREADS (_save)=(PyThreadState*)0;
#endif
Should a hack like that be added to every Cython-generated C source?
--
Lisandro Dalcin
---------------
CIMEC (INTEC/CONICET-UNL)
Predio CONICET-Santa Fe
Colectora RN 168 Km 472, Paraje El Pozo
Tel: +54-342-4511594 (ext 1011)
Tel/Fax: +54-342-4511169
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev