git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Victoria Dye <vdye@github.com>
To: Derrick Stolee <derrickstolee@github.com>,
	Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>,
	git@vger.kernel.org
Cc: johannes.schindelin@gmx.de, mjcheetham@outlook.com, gitster@pobox.com
Subject: Re: [PATCH v2 4/5] scalar unregister: stop FSMonitor daemon
Date: Wed, 17 Aug 2022 10:36:27 -0700	[thread overview]
Message-ID: <6c39fc96-2e88-297e-38df-4bcb88447972@github.com> (raw)
In-Reply-To: <2cbbd732-b9e7-fe8b-9c77-f86a856d06c7@github.com>

Derrick Stolee wrote:
> On 8/16/2022 7:58 PM, Johannes Schindelin via GitGitGadget wrote:
>> 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).
> 
>> +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"));
>> +
> 
> One thing that is interesting about 'scalar unregister' is that it does
> not change config values. At that point, we don't know which config values
> are valuable to keep or not because the user may have set them before
> 'scalar register', or otherwise liked the config options.
> 
> Here, the reason to stop the daemon is so we unlock the ability to delete
> the directory on Windows.
> 
> Should this become part of cmd_delete() instead of unregister_dir()? Or,
> do we think that users would opt to run 'scalar unregister' before trying
> to delete their directory manually?

After reading this, my first thought was that 'scalar unregister' should
still turn off the FSMonitor daemon because, in addition to allowing for
directory deletion in 'scalar delete', it's "cleaning up" some
optionally-enabled behavior associated with Scalar (a la
'toggle_maintenance(0)'). However, given that 'unregister' doesn't clear
'core.fsmonitor', it really *isn't* comparable to 'toggle_maintenance(0)'.

So I think you're right that it should only be associated with enlistment
deletion (although I think 'delete_enlistment()' is the place for that -
right before 'remove_dir_recursively()' - rather than 'cmd_delete()').

Thanks!

> 
> Thanks,
> -Stolee


  reply	other threads:[~2022-08-17 17:38 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-16 18:07 [PATCH 0/3] scalar: enable built-in FSMonitor Victoria Dye via GitGitGadget
2022-08-16 18:07 ` [PATCH 1/3] scalar: enable built-in FSMonitor on `register` Matthew John Cheetham via GitGitGadget
2022-08-16 20:49   ` Junio C Hamano
2022-08-16 21:57     ` Victoria Dye
2022-08-16 22:15       ` Junio C Hamano
2022-08-16 18:07 ` [PATCH 2/3] scalar unregister: stop FSMonitor daemon Johannes Schindelin via GitGitGadget
2022-08-16 18:07 ` [PATCH 3/3] scalar: update technical doc roadmap with FSMonitor support Victoria Dye via GitGitGadget
2022-08-16 18:21 ` [PATCH 0/3] scalar: enable built-in FSMonitor Junio C Hamano
2022-08-16 18:42   ` Victoria Dye
2022-08-16 18:44     ` Junio C Hamano
2022-08-16 23:58 ` [PATCH v2 0/5] " Victoria Dye via GitGitGadget
2022-08-16 23:58   ` [PATCH v2 1/5] scalar-unregister: handle error codes greater than 0 Victoria Dye via GitGitGadget
2022-08-17 14:33     ` Junio C Hamano
2022-08-16 23:58   ` [PATCH v2 2/5] scalar-[un]register: clearly indicate source of error Victoria Dye via GitGitGadget
2022-08-16 23:58   ` [PATCH v2 3/5] scalar: enable built-in FSMonitor on `register` Matthew John Cheetham via GitGitGadget
2022-08-17 14:34     ` Derrick Stolee
2022-08-17 15:54       ` Junio C Hamano
2022-08-17 23:47       ` Victoria Dye
2022-08-18 13:19         ` Derrick Stolee
2022-08-17 14:43     ` Junio C Hamano
2022-08-16 23:58   ` [PATCH v2 4/5] scalar unregister: stop FSMonitor daemon Johannes Schindelin via GitGitGadget
2022-08-17 14:39     ` Derrick Stolee
2022-08-17 17:36       ` Victoria Dye [this message]
2022-08-17 17:45         ` Derrick Stolee
2022-08-16 23:58   ` [PATCH v2 5/5] scalar: update technical doc roadmap with FSMonitor support Victoria Dye via GitGitGadget
2022-08-17 14:51   ` [PATCH v2 0/5] scalar: enable built-in FSMonitor Derrick Stolee
2022-08-18 21:40   ` [PATCH v3 0/8] " Victoria Dye via GitGitGadget
2022-08-18 21:40     ` [PATCH v3 1/8] scalar: constrain enlistment search Victoria Dye via GitGitGadget
2022-08-19 18:32       ` Derrick Stolee
2022-08-18 21:40     ` [PATCH v3 2/8] scalar-unregister: handle error codes greater than 0 Victoria Dye via GitGitGadget
2022-08-18 21:40     ` [PATCH v3 3/8] scalar-[un]register: clearly indicate source of error Victoria Dye via GitGitGadget
2022-08-18 21:40     ` [PATCH v3 4/8] scalar-delete: do not 'die()' in 'delete_enlistment()' Victoria Dye via GitGitGadget
2022-08-18 21:40     ` [PATCH v3 5/8] scalar: move config setting logic into its own function Victoria Dye via GitGitGadget
2022-08-18 21:40     ` [PATCH v3 6/8] scalar: enable built-in FSMonitor on `register` Matthew John Cheetham via GitGitGadget
2022-08-19 18:44       ` Derrick Stolee
2022-08-18 21:40     ` [PATCH v3 7/8] scalar unregister: stop FSMonitor daemon Johannes Schindelin via GitGitGadget
2022-08-18 21:40     ` [PATCH v3 8/8] scalar: update technical doc roadmap with FSMonitor support Victoria Dye via GitGitGadget
2022-08-19 18:45     ` [PATCH v3 0/8] scalar: enable built-in FSMonitor Derrick Stolee
2022-08-19 21:06       ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6c39fc96-2e88-297e-38df-4bcb88447972@github.com \
    --to=vdye@github.com \
    --cc=derrickstolee@github.com \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=gitster@pobox.com \
    --cc=johannes.schindelin@gmx.de \
    --cc=mjcheetham@outlook.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).