]> git.pld-linux.org Git - packages/vim.git/blob - 7.3.499
- up to 7.3.600
[packages/vim.git] / 7.3.499
1 To: vim_dev@googlegroups.com
2 Subject: Patch 7.3.499
3 Fcc: outbox
4 From: Bram Moolenaar <Bram@moolenaar.net>
5 Mime-Version: 1.0
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
8 ------------
9
10 Patch 7.3.499
11 Problem:    When using any interface language when Vim is waiting for a child
12             process it gets confused by a child process started through the
13             interface.
14 Solution:   Always used waitpid() instead of wait(). (Yasuhiro Matsumoto)
15 Files:      src/os_unix.c
16
17
18 *** ../vim-7.3.498/src/os_unix.c        2012-02-05 22:51:27.000000000 +0100
19 --- src/os_unix.c       2012-04-20 15:47:17.000000000 +0200
20 ***************
21 *** 3734,3757 ****
22   
23       while (wait_pid != child)
24       {
25 ! # ifdef _THREAD_SAFE
26 !       /* Ugly hack: when compiled with Python threads are probably
27 !        * used, in which case wait() sometimes hangs for no obvious
28 !        * reason.  Use waitpid() instead and loop (like the GUI). */
29 ! #  ifdef __NeXT__
30         wait_pid = wait4(child, status, WNOHANG, (struct rusage *)0);
31 ! #  else
32         wait_pid = waitpid(child, status, WNOHANG);
33 ! #  endif
34         if (wait_pid == 0)
35         {
36             /* Wait for 1/100 sec before trying again. */
37             mch_delay(10L, TRUE);
38             continue;
39         }
40 - # else
41 -       wait_pid = wait(status);
42 - # endif
43         if (wait_pid <= 0
44   # ifdef ECHILD
45                 && errno == ECHILD
46 --- 3734,3754 ----
47   
48       while (wait_pid != child)
49       {
50 !       /* When compiled with Python threads are probably used, in which case
51 !        * wait() sometimes hangs for no obvious reason.  Use waitpid()
52 !        * instead and loop (like the GUI). Also needed for other interfaces,
53 !        * they might call system(). */
54 ! # ifdef __NeXT__
55         wait_pid = wait4(child, status, WNOHANG, (struct rusage *)0);
56 ! # else
57         wait_pid = waitpid(child, status, WNOHANG);
58 ! # endif
59         if (wait_pid == 0)
60         {
61             /* Wait for 1/100 sec before trying again. */
62             mch_delay(10L, TRUE);
63             continue;
64         }
65         if (wait_pid <= 0
66   # ifdef ECHILD
67                 && errno == ECHILD
68 *** ../vim-7.3.498/src/version.c        2012-04-20 13:46:02.000000000 +0200
69 --- src/version.c       2012-04-20 15:54:05.000000000 +0200
70 ***************
71 *** 716,717 ****
72 --- 716,719 ----
73   {   /* Add new patch number below this line */
74 + /**/
75 +     499,
76   /**/
77
78 -- 
79 It's not hard to meet expenses, they're everywhere.
80
81  /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
82 ///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
83 \\\  an exciting new programming language -- http://www.Zimbu.org        ///
84  \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
This page took 0.032823 seconds and 3 git commands to generate.