From aa50d0be344aefd8ec0fa47166d07728898929a3 Mon Sep 17 00:00:00 2001 From: Ivan Babrou Date: Wed, 25 Sep 2024 15:18:41 -0700 Subject: [PATCH] Add LifecycleHandler::pre_new_process --- src/lib.rs | 2 ++ src/lifecycle.rs | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index c83a110..7146b8d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -412,6 +412,8 @@ async fn spawn_child( user_envs: &[(OsString, OsString)], lifecycle_handler: &mut dyn LifecycleHandler, ) -> io::Result { + lifecycle_handler.pre_new_process().await; + let mut args = env::args(); let process_name = args.next().unwrap(); diff --git a/src/lifecycle.rs b/src/lifecycle.rs index e0583ad..79f011e 100644 --- a/src/lifecycle.rs +++ b/src/lifecycle.rs @@ -19,6 +19,9 @@ pub trait LifecycleHandler: Send { Ok(()) } + /// Called before the child process has been spawned. + async fn pre_new_process(&mut self) {} + /// Called after `send_to_new_process` if the child process fails to start successfully. /// This gives you an opportunity to undo any state changes made in `send_to_new_process`. async fn new_process_failed(&mut self) {}