Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128

From: Eli Zaretskii <[email-masked]>
Date: Sat, 17 Nov 2012 17:40:51 +0200

> Date: Sat, 17 Nov 2012 07:35:54 -0800
> From: Paul Eggert <[email-masked]>
> CC: Stephen Powell <[email-masked]>, 
>  [email-masked]
> 
> On 11/16/2012 11:09 PM, Eli Zaretskii wrote:
> > Any news?  Should I commit the changes?
> 
> I don't see anything about it that would break things,
> though I'm looking only at the non-Windows part.

Thanks, I will install in a short while.

> The following change to wait_for_termination_1
> would be simpler, assuming the Windows waitpid emulation
> is good enough now.
> 
> === modified file 'src/sysdep.c'
> --- src/sysdep.c	2012-11-14 04:55:41 +0000
> +++ src/sysdep.c	2012-11-17 15:33:25 +0000
> @@ -289,10 +289,6 @@ wait_for_termination_1 (pid_t pid, int i
>  {
>    while (1)
>      {
> -#ifdef WINDOWSNT
> -      wait (0);
> -      break;
> -#else /* not WINDOWSNT */
>        int status;
>        int wait_result = waitpid (pid, &status, 0);
>        if (wait_result < 0)
> @@ -306,7 +302,6 @@ wait_for_termination_1 (pid_t pid, int i
>  	  break;
>  	}
>  
> -#endif /* not WINDOWSNT */
>        if (interruptible)
>  	QUIT;
>      }

Yes, I plan to do that, given the discussion about the "interruptible"
wait here.  The Windows emulation actually calls QUIT internally,
instead of returning with EINTR, but I don't think that matters in
this case.