[racket] Custodian behavior on normal exit
On 2013-10-28 18:39:23 -0400, Jonathan Schuster wrote:
> My assumption was that the root custodian would always call
> custodian-shutdown-all on itself when a Racket process ends, regardless of
> whether the process is shutting down gracefully or not. Is that not the
> case?
I suspect the issue here is the caveat described in the docs for
`current-subprocess-custodian-mode`:
Custodian-triggered shutdown is limited by details of process handling
in the host system. For example, process and system may create an
intermediate shell process to run a program, in which case
custodian-based termination shuts down the shell process and probably
not the process started by the shell. See also subprocess-kill. Process
groups (see subprocess-group-enabled) can address some limitations, but
not all of them.
My guess is that running "racket" from a subprocess spawns additional
processes that aren't controlled from the custodian. I noticed that if
you change the program from "racket" to running "bin/cat", for example,
the subprocess does seem to be terminated.
(I don't actually know much about custodians so this could be all wrong)
Cheers,
Asumu