Adrian Ratiu
005f3fbe07
builtin/receive-pack: avoid spinning no-op sideband async threads
...
Exit early if the hooks do not exist, to avoid spinning up/down
sideband async threads which no-op.
It is important to call the hook_exists() API provided by hook.[ch]
because it covers both config-defined hooks and the "traditional"
hooks from the hookdir. find_hook() only covers the hookdir hooks.
The regression happened because the no-op async threads add some
additional overhead which can be measured with the receive-refs test
of the benchmarks suite [1].
Reproduced using:
cd benchmarks/receive-refs && \
./run --revisions /path/to/git \
fc148b146ad41be71a7852c4867f0773cbfe1ff9~,fc148b146ad41be71a7852c4867f0773cbfe1ff9 \
--parameter-list refformat reftable --parameter-list refcount 10000
1: https://gitlab.com/gitlab-org/data-access/git/benchmarks
Fixes: fc148b146a ("receive-pack: convert update hooks to new API")
Reported-by: Patrick Steinhardt <ps@pks.im >
Helped-by: Jeff King <peff@peff.net >
Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com >
[jc: avoid duplicated hardcoded hook names]
Signed-off-by: Junio C Hamano <gitster@pobox.com >
2026-03-02 16:00:43 -08:00
..
2025-10-02 12:26:11 -07:00
2025-09-16 13:37:03 -07:00
2024-10-25 14:02:36 -04:00
2025-07-01 14:58:24 -07:00
2024-10-11 09:37:18 -07:00
2025-09-24 11:53:50 -07:00
2025-11-19 10:55:39 -08:00
2025-12-05 14:49:56 +09:00
2025-12-03 00:16:05 -08:00
2025-04-15 08:24:35 -07:00
2024-12-13 07:33:36 -08:00
2025-11-23 12:56:46 -08:00
2025-07-23 08:15:18 -07:00
2025-07-23 08:15:22 -07:00
2025-07-23 08:15:22 -07:00
2025-01-17 13:30:03 -08:00
2025-07-23 08:15:22 -07:00
2025-07-23 08:15:22 -07:00
2026-01-06 16:33:52 +09:00
2025-09-29 11:40:35 -07:00
2025-11-19 17:41:03 -08:00
2025-07-23 08:15:18 -07:00
2025-10-22 10:40:11 -07:00
2025-07-23 08:15:22 -07:00
2025-09-29 11:40:35 -07:00
2025-12-05 14:49:59 +09:00
2025-10-16 14:42:39 -07:00
2025-07-23 08:15:20 -07:00
2024-11-01 12:53:19 -04:00
2025-07-23 08:15:20 -07:00
2025-07-23 08:15:22 -07:00
2025-12-29 22:02:54 +09:00
2025-04-15 08:24:35 -07:00
2025-07-23 08:15:18 -07:00
2025-07-23 08:15:18 -07:00
2025-03-03 08:17:47 -08:00
2025-07-23 08:15:18 -07:00
2025-08-09 17:22:01 -07:00
2025-07-01 14:46:38 -07:00
2025-12-05 14:49:58 +09:00
2025-12-05 14:49:58 +09:00
2025-06-04 08:52:25 -07:00
2025-12-23 11:33:17 +09:00
2025-08-11 09:19:40 -07:00
2025-08-22 13:13:20 -07:00
2024-12-06 20:20:04 +09:00
2025-12-16 11:08:34 +09:00
2025-07-23 08:15:22 -07:00
2026-01-07 09:16:50 +09:00
2025-01-17 13:30:03 -08:00
2025-10-21 11:39:31 -07:00
2025-07-23 08:15:22 -07:00
2025-07-23 08:15:22 -07:00
2026-01-15 13:02:38 -08:00
2025-12-16 11:08:34 +09:00
2025-04-24 17:25:34 -07:00
2025-07-23 08:15:22 -07:00
2025-12-23 11:33:16 +09:00
2025-12-25 08:29:27 +09:00
2025-09-08 14:54:35 -07:00
2025-11-04 07:32:25 -08:00
2025-09-10 14:29:49 -07:00
2024-12-18 10:44:31 -08:00
2025-01-17 13:30:03 -08:00
2025-07-23 08:15:22 -07:00
2025-08-05 11:53:55 -07:00
2025-01-17 13:30:03 -08:00
2025-01-17 13:30:03 -08:00
2025-08-08 11:13:12 -07:00
2025-08-21 13:47:00 -07:00
2025-09-18 10:07:00 -07:00
2025-08-05 11:53:55 -07:00
2025-07-16 22:16:15 -07:00
2025-09-12 10:41:18 -07:00
2025-07-23 08:15:18 -07:00
2025-12-25 08:29:27 +09:00
2025-08-21 13:47:00 -07:00
2025-12-29 22:02:54 +09:00
2025-10-30 08:00:19 -07:00
2025-09-19 10:02:55 -07:00
2025-07-23 08:15:22 -07:00
2024-09-13 14:33:30 -07:00
2025-08-05 11:53:55 -07:00
2025-12-12 22:08:02 +09:00
2025-09-16 17:59:53 -07:00
2025-10-14 12:56:09 -07:00
2025-07-23 08:15:22 -07:00
2025-09-29 11:40:34 -07:00
2026-03-02 16:00:43 -08:00
2025-10-15 10:29:28 -07:00
2025-10-02 12:26:12 -07:00
2025-01-17 13:30:03 -08:00
2025-01-17 13:30:03 -08:00
2025-11-04 07:32:24 -08:00
2025-11-19 17:41:03 -08:00
2025-11-04 07:32:24 -08:00
2026-01-06 07:30:16 +09:00
2025-12-30 12:58:19 +09:00
2025-07-23 08:15:18 -07:00
2025-08-04 08:10:33 -07:00
2025-08-04 08:10:33 -07:00
2025-11-19 10:55:39 -08:00
2025-09-18 10:07:00 -07:00
2025-07-23 08:15:22 -07:00
2025-07-23 08:15:22 -07:00
2025-07-23 08:15:18 -07:00
2026-01-06 16:33:52 +09:00
2025-07-01 14:58:24 -07:00
2025-11-04 07:32:25 -08:00
2025-09-15 12:10:56 -07:00
2025-09-29 11:40:35 -07:00
2025-07-23 08:15:18 -07:00
2025-12-23 11:33:15 +09:00
2025-07-23 08:15:22 -07:00
2025-12-29 22:02:53 +09:00
2025-07-23 08:15:22 -07:00
2025-11-03 12:18:48 -08:00
2025-09-16 11:37:06 -07:00
2025-07-23 08:15:22 -07:00
2025-07-23 08:15:22 -07:00
2025-11-19 17:41:03 -08:00
2025-11-19 17:41:03 -08:00
2025-08-21 13:46:59 -07:00
2025-07-23 08:15:22 -07:00
2025-07-23 08:15:22 -07:00
2025-12-29 22:02:53 +09:00
2025-11-26 10:32:42 -08:00
2025-07-23 08:15:22 -07:00