diff --git a/Modules/_ctypes/callbacks.c b/Modules/_ctypes/callbacks.c index 55ba5f0c0b3..c091d88364a 100644 --- a/Modules/_ctypes/callbacks.c +++ b/Modules/_ctypes/callbacks.c @@ -348,7 +348,9 @@ void init_callbacks_in_module(PyObject *m) static void LoadPython(void) { if (!Py_IsInitialized()) { +#ifdef WITH_THREAD PyEval_InitThreads(); +#endif Py_Initialize(); } } diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c index 0fe7d103ffc..6342ece10d7 100644 --- a/Modules/_ctypes/callproc.c +++ b/Modules/_ctypes/callproc.c @@ -818,7 +818,9 @@ GetComError(HRESULT errcode, GUID *riid, IUnknown *pIunk) /* We absolutely have to release the GIL during COM method calls, otherwise we may get a deadlock! */ +#ifdef WITH_THREAD Py_BEGIN_ALLOW_THREADS +#endif hr = pIunk->lpVtbl->QueryInterface(pIunk, &IID_ISupportErrorInfo, (void **)&psei); if (FAILED(hr)) @@ -842,7 +844,9 @@ GetComError(HRESULT errcode, GUID *riid, IUnknown *pIunk) pei->lpVtbl->Release(pei); failed: +#ifdef WITH_THREAD Py_END_ALLOW_THREADS +#endif progid = NULL; ProgIDFromCLSID(&guid, &progid);