Re: [PATCH 1/1] builtin/receive-pack: avoid spinning no-op sideband async threads
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 2, 2026, 21:40 UTC
- Message-ID
- <xmqq4imxzz90.fsf@gitster.g>
- In-Reply-To
- <20260302191704.1814567-2-adrian.ratiu@collabora.com>
Adrian Ratiu <adrian.ratiu@collabora.com> writes:
Show 10 quoted lines
> @@ -980,6 +983,9 @@ static int run_update_hook(struct command *cmd) > int saved_stderr = -1; > int code; > > + if (!hook_exists(the_repository, "update")) > + return 0; > + > strvec_pushl(&opt.args, > cmd->ref_name, > oid_to_hex(&cmd->old_oid),
Shouldn't we consolidate the two instances of hardcoded string "update" in this function by introducing
static const char hook_name[] = "update";
in the function scope and using it?
Show 10 quoted lines
> @@ -1674,6 +1680,9 @@ static void run_update_post_hook(struct command *commands)
> int sideband_async_started = 0;
> int saved_stderr = -1;
>
> + if (!hook_exists(the_repository, "post-update"))
> + return;
> +
> for (cmd = commands; cmd; cmd = cmd->next) {
> if (cmd->error_string || cmd->did_not_exist)
> continue;Ditto for "post-update".
Will queue with the following change squashed in.
builtin/receive-pack.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)
diff --git c/builtin/receive-pack.c w/builtin/receive-pack.c index 62c576c247..bf5d7e6dd0 100644 --- c/builtin/receive-pack.c +++ w/builtin/receive-pack.c @@ -977,13 +977,14 @@ static int run_receive_hook(struct command *commands, static int run_update_hook(struct command *cmd) { + static const char hook_name[] = "update"; struct run_hooks_opt opt = RUN_HOOKS_OPT_INIT; struct async sideband_async; int sideband_async_started = 0; int saved_stderr = -1; int code; - if (!hook_exists(the_repository, "update")) + if (!hook_exists(the_repository, hook_name)) return 0; strvec_pushl(&opt.args, @@ -994,7 +995,7 @@ static int run_update_hook(struct command *cmd) prepare_sideband_async(&sideband_async, &saved_stderr, &sideband_async_started); - code = run_hooks_opt(the_repository, "update", &opt); + code = run_hooks_opt(the_repository, hook_name, &opt); finish_sideband_async(&sideband_async, saved_stderr, sideband_async_started); @@ -1674,13 +1675,14 @@ static const char *update(struct command *cmd, struct shallow_info *si) static void run_update_post_hook(struct command *commands) { + static const char hook_name[] = "post-update"; struct run_hooks_opt opt = RUN_HOOKS_OPT_INIT; struct async sideband_async; struct command *cmd; int sideband_async_started = 0; int saved_stderr = -1; - if (!hook_exists(the_repository, "post-update")) + if (!hook_exists(the_repository, hook_name)) return; for (cmd = commands; cmd; cmd = cmd->next) { @@ -1693,7 +1695,7 @@ static void run_update_post_hook(struct command *commands) prepare_sideband_async(&sideband_async, &saved_stderr, &sideband_async_started); - run_hooks_opt(the_repository, "post-update", &opt); + run_hooks_opt(the_repository, hook_name, &opt); finish_sideband_async(&sideband_async, saved_stderr, sideband_async_started); }