Skip to content

Commit 2e54ec5

Browse files
committed
updated for version 7.3.499
Problem: When using any interface language when Vim is waiting for a child process it gets confused by a child process started through the interface. Solution: Always used waitpid() instead of wait(). (Yasuhiro Matsumoto)
1 parent 5ecbd63 commit 2e54ec5

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

src/os_unix.c

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3734,24 +3734,21 @@ wait4pid(child, status)
37343734

37353735
while (wait_pid != child)
37363736
{
3737-
# ifdef _THREAD_SAFE
3738-
/* Ugly hack: when compiled with Python threads are probably
3739-
* used, in which case wait() sometimes hangs for no obvious
3740-
* reason. Use waitpid() instead and loop (like the GUI). */
3741-
# ifdef __NeXT__
3737+
/* When compiled with Python threads are probably used, in which case
3738+
* wait() sometimes hangs for no obvious reason. Use waitpid()
3739+
* instead and loop (like the GUI). Also needed for other interfaces,
3740+
* they might call system(). */
3741+
# ifdef __NeXT__
37423742
wait_pid = wait4(child, status, WNOHANG, (struct rusage *)0);
3743-
# else
3743+
# else
37443744
wait_pid = waitpid(child, status, WNOHANG);
3745-
# endif
3745+
# endif
37463746
if (wait_pid == 0)
37473747
{
37483748
/* Wait for 1/100 sec before trying again. */
37493749
mch_delay(10L, TRUE);
37503750
continue;
37513751
}
3752-
# else
3753-
wait_pid = wait(status);
3754-
# endif
37553752
if (wait_pid <= 0
37563753
# ifdef ECHILD
37573754
&& errno == ECHILD

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -714,6 +714,8 @@ static char *(features[]) =
714714

715715
static int included_patches[] =
716716
{ /* Add new patch number below this line */
717+
/**/
718+
499,
717719
/**/
718720
498,
719721
/**/

0 commit comments

Comments
 (0)