MINOR: initcalls: Add a new initcall stage, STG_INIT_2

Add a new initcall stage, STG_INIT_2, for stuff to be called after
step_init_2() is called, so after we know for sure that global.nbthread
will be set.
Modify stick-tables stkt_late_init() to run at STG_INIT_2 instead of
STG_INIT, in anticipation for it to be enhanced and have a need for
global.nbthread.
This commit is contained in:
Olivier Houchard 2025-10-16 15:45:52 +02:00 committed by Olivier Houchard
parent e63e98f1d8
commit 945aa0ea82
3 changed files with 5 additions and 2 deletions

View File

@ -67,6 +67,7 @@ enum init_stage {
STG_ALLOC, // allocate required structures STG_ALLOC, // allocate required structures
STG_POOL, // create pools STG_POOL, // create pools
STG_INIT, // subsystems normal initialization STG_INIT, // subsystems normal initialization
STG_INIT_2, // runs after step_init_2, to have global.nbthread
STG_SIZE // size of the stages array, must be last STG_SIZE // size of the stages array, must be last
}; };
@ -202,6 +203,7 @@ DECLARE_INIT_SECTION(STG_REGISTER);
DECLARE_INIT_SECTION(STG_ALLOC); DECLARE_INIT_SECTION(STG_ALLOC);
DECLARE_INIT_SECTION(STG_POOL); DECLARE_INIT_SECTION(STG_POOL);
DECLARE_INIT_SECTION(STG_INIT); DECLARE_INIT_SECTION(STG_INIT);
DECLARE_INIT_SECTION(STG_INIT_2);
// for use in the main haproxy.c file // for use in the main haproxy.c file
#define DECLARE_INIT_STAGES asm("") #define DECLARE_INIT_STAGES asm("")

View File

@ -3378,6 +3378,7 @@ int main(int argc, char **argv)
*/ */
step_init_2(argc, argv); step_init_2(argc, argv);
RUN_INITCALLS(STG_INIT_2);
/* Late init step: register signals for worker and standalon modes, apply /* Late init step: register signals for worker and standalon modes, apply
* nofile and memory limits, apply capabilities from binary, if any. * nofile and memory limits, apply capabilities from binary, if any.
*/ */

View File

@ -5901,10 +5901,10 @@ static void stkt_late_init(void)
f = find_sample_fetch("src", strlen("src")); f = find_sample_fetch("src", strlen("src"));
if (f) if (f)
smp_fetch_src = f->process; smp_fetch_src = f->process;
hap_register_post_check(stkt_create_stk_ctr_pool); stkt_create_stk_ctr_pool();
} }
INITCALL0(STG_INIT, stkt_late_init); INITCALL0(STG_INIT_2, stkt_late_init);
/* register cli keywords */ /* register cli keywords */
static struct cli_kw_list cli_kws = {{ },{ static struct cli_kw_list cli_kws = {{ },{