[racket] Custodian behavior on normal exit

From: Asumu Takikawa (asumu at ccs.neu.edu)
Date: Wed Oct 30 09:48:25 EDT 2013

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

Posted on the users mailing list.