diff options
-rw-r--r-- | src/if_python.c | 16 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/if_python.c b/src/if_python.c index 5e792b16d..1bf737fc4 100644 --- a/src/if_python.c +++ b/src/if_python.c @@ -740,12 +740,11 @@ Python_Init(void) #else PyMac_Initialize(); #endif - /* Initialise threads, and save the state using PyGILState_Ensure. - * Without the call to PyGILState_Ensure, thread specific state (such - * as the system trace hook), will be lost between invocations of - * Python code. */ + /* Initialise threads, and below save the state using + * PyGILState_Ensure. Without the call to PyGILState_Ensure, thread + * specific state (such as the system trace hook), will be lost + * between invocations of Python code. */ PyEval_InitThreads(); - pygilstate = PyGILState_Ensure(); #ifdef DYNAMIC_PYTHON get_exceptions(); #endif @@ -756,6 +755,10 @@ Python_Init(void) if (PythonMod_Init()) goto fail; + /* The first python thread is vim's, release the lock. */ + Python_SaveThread(); + pygilstate = PyGILState_Ensure(); + globals = PyModule_GetDict(PyImport_AddModule("__main__")); /* Remove the element from sys.path that was added because of our @@ -764,8 +767,7 @@ Python_Init(void) * the current directory in sys.path. */ PyRun_SimpleString("import sys; sys.path = filter(lambda x: x != '/must>not&exist', sys.path)"); - /* the first python thread is vim's, release the lock */ - Python_SaveThread(); + PyGILState_Release(pygilstate); initialised = 1; } diff --git a/src/version.c b/src/version.c index 0f77ad255..8115020bf 100644 --- a/src/version.c +++ b/src/version.c @@ -726,6 +726,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 786, +/**/ 785, /**/ 784, |