Subject: bug#17036: Continuation for Emacs: invoking a process on exit?

From: Lars Ingebrigtsen <[email-masked]>
Date: Sun, 17 Apr 2022 14:49:23 +0200

Eli Zaretskii <[email-masked]> writes:

>   . when kill-emacs is called with RESTART non-nil, the value of ARG
>     is ignored; this should at least be documented;

Emacs doesn't exit, so I thought it would be self-evident that ARG
(which is all about the exit code) is ignored.

>   . the exit status of the restarted Emacs is discarded, so it will
>     not be available to the parent program, at least on MS-Windows,
>     and also if execvp fails for some reason;

Again, Emacs doesn't exit, so...

>   . the semantics of the file descriptors open in the original Emacs
>     process is not clear to me: will they remain open in the restarted
>     Emacs, if the original Emacs opened them without CLOEXEC?

I thought we opened all file descriptors with CLOEXEC?  If not, that's a
bug, since we'd be leaking file descriptors to programs we start with
`call-process', for instance.

>   . does the restarted Emacs belong to the same process group? should
>     it?

I think so, and I guess so?

>   . on MS-Windows, if any of the argv[] command-line arguments have
>     embedded whitespace, the restarted Emacs will not get the same
>     elements in its argv[] array, because the Windows API for starting
>     processes accepts the command-line arguments as a single string

Sounds like we should just document that this doesn't work on Windows,
then.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no