mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
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)
This commit is contained in:
parent
84298db3a4
commit
6be120e7f5
@ -3734,24 +3734,21 @@ wait4pid(child, status)
|
|||||||
|
|
||||||
while (wait_pid != child)
|
while (wait_pid != child)
|
||||||
{
|
{
|
||||||
# ifdef _THREAD_SAFE
|
/* When compiled with Python threads are probably used, in which case
|
||||||
/* Ugly hack: when compiled with Python threads are probably
|
* wait() sometimes hangs for no obvious reason. Use waitpid()
|
||||||
* used, in which case wait() sometimes hangs for no obvious
|
* instead and loop (like the GUI). Also needed for other interfaces,
|
||||||
* reason. Use waitpid() instead and loop (like the GUI). */
|
* they might call system(). */
|
||||||
# ifdef __NeXT__
|
# ifdef __NeXT__
|
||||||
wait_pid = wait4(child, status, WNOHANG, (struct rusage *)0);
|
wait_pid = wait4(child, status, WNOHANG, (struct rusage *)0);
|
||||||
# else
|
# else
|
||||||
wait_pid = waitpid(child, status, WNOHANG);
|
wait_pid = waitpid(child, status, WNOHANG);
|
||||||
# endif
|
# endif
|
||||||
if (wait_pid == 0)
|
if (wait_pid == 0)
|
||||||
{
|
{
|
||||||
/* Wait for 1/100 sec before trying again. */
|
/* Wait for 1/100 sec before trying again. */
|
||||||
mch_delay(10L, TRUE);
|
mch_delay(10L, TRUE);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
# else
|
|
||||||
wait_pid = wait(status);
|
|
||||||
# endif
|
|
||||||
if (wait_pid <= 0
|
if (wait_pid <= 0
|
||||||
# ifdef ECHILD
|
# ifdef ECHILD
|
||||||
&& errno == ECHILD
|
&& errno == ECHILD
|
||||||
|
@ -714,6 +714,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
499,
|
||||||
/**/
|
/**/
|
||||||
498,
|
498,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user