summaryrefslogtreecommitdiff
path: root/builtin/am.c
diff options
context:
space:
mode:
authorLibravatar Jeff King <peff@peff.net>2019-08-06 08:27:26 -0400
committerLibravatar Junio C Hamano <gitster@pobox.com>2019-08-06 13:09:01 -0700
commit5732f2b1ef3559f2b2a5c67302f8bf21846488bc (patch)
tree4dae1923699796087b65b6f3082141e5115cab0c /builtin/am.c
parentt1309: use short branch name in includeIf.onbranch test (diff)
downloadtgif-5732f2b1ef3559f2b2a5c67302f8bf21846488bc.tar.xz
common-main: delay trace2 initialization
We initialize the trace2 system in the common main() function so that all programs (even ones that aren't builtins) will enable tracing. But trace2 startup is relatively heavy-weight, as we have to actually read on-disk config to decide whether to trace. This can cause unexpected interactions with other common-main initialization. For instance, we'll end up in the config code before calling initialize_the_repository(), and the usual invariant that the_repository is never NULL will not hold. Let's push the trace2 initialization further down in common-main, to just before we execute cmd_main(). The other parts of the initialization are much more self-contained and less likely to call library code that depends on those kinds of invariants. Originally the trace2 code tried to start as early as possible to get accurate timings. But the timer initialization was split out from the config reading in a089724958 (trace2: refactor setting process starting time, 2019-04-15), so there shouldn't be any impact from this patch. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/am.c')
0 files changed, 0 insertions, 0 deletions