scalar unregister: stop FSMonitor daemon
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> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
3f1917dc60
commit
ec4c23116b
@ -244,6 +244,16 @@ static int start_fsmonitor_daemon(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int stop_fsmonitor_daemon(void)
|
||||||
|
{
|
||||||
|
assert(have_fsmonitor_support());
|
||||||
|
|
||||||
|
if (fsmonitor_ipc__get_state() == IPC_STATE__LISTENING)
|
||||||
|
return run_git("fsmonitor--daemon", "stop", NULL);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int register_dir(void)
|
static int register_dir(void)
|
||||||
{
|
{
|
||||||
if (add_or_remove_enlistment(1))
|
if (add_or_remove_enlistment(1))
|
||||||
@ -468,6 +478,9 @@ static int delete_enlistment(struct strbuf *enlistment)
|
|||||||
strbuf_release(&parent);
|
strbuf_release(&parent);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (have_fsmonitor_support() && stop_fsmonitor_daemon())
|
||||||
|
return error(_("failed to stop the FSMonitor daemon"));
|
||||||
|
|
||||||
if (remove_dir_recursively(enlistment, 0))
|
if (remove_dir_recursively(enlistment, 0))
|
||||||
return error(_("failed to delete enlistment directory"));
|
return error(_("failed to delete enlistment directory"));
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user