From 423fdb18ee1fe242157c0fc866e376629e9493e4 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 18 Aug 2022 19:46:13 +0100 Subject: [PATCH 1/1] prefork-interp: watcher plan Signed-off-by: Ian Jackson --- cprogs/prefork-interp.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/cprogs/prefork-interp.c b/cprogs/prefork-interp.c index 6c9a1ff..429790a 100644 --- a/cprogs/prefork-interp.c +++ b/cprogs/prefork-interp.c @@ -21,15 +21,25 @@ * === 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 * -- 2.30.2