Patch 7.3.786
Problem:    Python threads don't run in the background (issue 103).
Solution:   Move the statements to manipulate thread state.
Files:      src/if_python.c


*** ../vim-7.3.785/src/if_python.c      2012-10-21 01:46:56.000000000 +0200
--- src/if_python.c     2013-01-30 11:38:06.000000000 +0100
***************
*** 740,751 ****
  #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. */
        PyEval_InitThreads();
-       pygilstate = PyGILState_Ensure();
  #ifdef DYNAMIC_PYTHON
        get_exceptions();
  #endif
--- 740,750 ----
  #else
        PyMac_Initialize();
  #endif
!       /* 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();
  #ifdef DYNAMIC_PYTHON
        get_exceptions();
  #endif
***************
*** 756,761 ****
--- 755,764 ----
        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,771 ****
         * 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();
  
        initialised = 1;
      }
--- 767,773 ----
         * the current directory in sys.path. */
        PyRun_SimpleString("import sys; sys.path = filter(lambda x: x != 
'/must>not&exist', sys.path)");
  
!       PyGILState_Release(pygilstate);
  
        initialised = 1;
      }
*** ../vim-7.3.785/src/version.c        2013-01-25 20:10:58.000000000 +0100
--- src/version.c       2013-01-30 11:44:04.000000000 +0100
***************
*** 727,728 ****
--- 727,730 ----
  {   /* Add new patch number below this line */
+ /**/
+     786,
  /**/

-- 
ARTHUR:        I command you as King of the Britons to stand aside!
BLACK KNIGHT:  I move for no man.
                                  The Quest for the Holy Grail (Monty Python)

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.



Raspunde prin e-mail lui