[PATCH v2 4/5] scalar unregister: stop FSMonitor daemon
- From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Aug 16, 2022, 23:58 UTC
- Message-ID
- <fc4aa1fde31fa0726cde2c1d4e41f3f140fff6f6.1660694290.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1324.v2.git.1660694290.gitgitgadget@gmail.com>
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Especially on Windows, we will need to stop that daemon, just in case that the directory needs to be removed (the daemon would otherwise hold a handle to that directory, preventing it from being deleted).
Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Victoria Dye <vdye@github.com> --- contrib/scalar/scalar.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/contrib/scalar/scalar.c b/contrib/scalar/scalar.c index 28d915ec006..f390f519d26 100644 --- a/contrib/scalar/scalar.c +++ b/contrib/scalar/scalar.c @@ -254,6 +254,16 @@ static int start_fsmonitor_daemon(void) return 0; } +static int stop_fsmonitor_daemon(void) +{ + assert(fsmonitor_ipc__is_supported()); + + if (fsmonitor_ipc__get_state() == IPC_STATE__LISTENING) + return run_git("fsmonitor--daemon", "stop", NULL); + + return 0; +} + static int register_dir(void) { if (add_or_remove_enlistment(1)) @@ -281,6 +291,9 @@ static int unregister_dir(void) if (add_or_remove_enlistment(0)) res = error(_("could not remove enlistment")); + if (fsmonitor_ipc__is_supported() && stop_fsmonitor_daemon() < 0) + res = error(_("could not stop the FSMonitor daemon")); + return res; }
-- gitgitgadget