chiark / gitweb /
prefork-interp: watcher plan
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 18 Aug 2022 18:46:13 +0000 (19:46 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 21 Aug 2022 20:21:10 +0000 (21:21 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
cprogs/prefork-interp.c

index 6c9a1ff5343451d1600ffedc034fcd034acaf10c..429790ae3cb0fd238c5cd9e83532b857f7088909 100644 (file)
  *                            === acquire lock ===
  *                               makes new listening socket
  *                               makes first-instance socketpair
+ *                               makes watcher pipes
+ *                            forks watcher and awaits
  *                            forks setup (script, sock fds indicated in env)
  *                            fd0, fd1, fd2: from-outer
  *                            other fd: call(client-end)(fake)
  *                            reaps setup (and reports error)
  *                            (implicitly releases lock)
  *
+ *     watcher                fd[012]: watcher pipes
+ *                            starts watch on socket path
+ *                            sets stderr to line buffered
+ *                            sets stdin to nonblocking
+ *                            daemonises
+ *                            when socket stat changes, quit
+ *
  *     setup (pre-exec)       fd0: null,
  *                            fd[12]: fd2-from-outer
- *                            env fds: listener, call(server-end)(fake)
+ *                            env fds: listener, call(server-end)(fake),
+ *                                      watcher read, watcher write
  *                            close fd: lockfile
  *                            possibly clean env, argv
  *