From: Quentin Young Date: Fri, 9 Aug 2019 18:03:01 +0000 (+0000) Subject: lib: handle frr_pthread_init/fini in libfrr init X-Git-Tag: base_7.3~352^2~1 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=b9b4c0610afd182c82d3a42afe66dc538910f6c8;p=matthieu%2Ffrr.git lib: handle frr_pthread_init/fini in libfrr init Make sure we are always cleaning init'ing and cleaning up pthread infra. Signed-off-by: Quentin Young --- diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index 5b31fbb3a8..572279b0ed 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -7931,8 +7931,6 @@ static void bgp_pthreads_init(void) assert(!bgp_pth_io); assert(!bgp_pth_ka); - frr_pthread_init(); - struct frr_pthread_attr io = { .start = frr_pthread_attr_default.start, .stop = frr_pthread_attr_default.stop, @@ -7958,7 +7956,6 @@ void bgp_pthreads_run(void) void bgp_pthreads_finish(void) { frr_pthread_stop_all(); - frr_pthread_finish(); } void bgp_init(unsigned short instance) diff --git a/lib/libfrr.c b/lib/libfrr.c index 4301dc20ad..478fe4e205 100644 --- a/lib/libfrr.c +++ b/lib/libfrr.c @@ -42,6 +42,7 @@ #include "northbound_db.h" #include "debug.h" #include "frrcu.h" +#include "frr_pthread.h" DEFINE_HOOK(frr_late_init, (struct thread_master * tm), (tm)) DEFINE_KOOH(frr_early_fini, (), ()) @@ -681,6 +682,8 @@ struct thread_master *frr_init(void) memory_init(); log_filter_cmd_init(); + frr_pthread_init(); + log_ref_init(); log_ref_vty_init(); lib_error_init(); @@ -1076,6 +1079,7 @@ void frr_fini(void) db_close(); #endif log_ref_fini(); + frr_pthread_finish(); zprivs_terminate(di->privs); /* signal_init -> nothing needed */ thread_master_free(master); diff --git a/zebra/main.c b/zebra/main.c index 657d1247e9..99607c0d78 100644 --- a/zebra/main.c +++ b/zebra/main.c @@ -36,7 +36,6 @@ #include "vrf.h" #include "libfrr.h" #include "routemap.h" -#include "frr_pthread.h" #include "zebra/zebra_router.h" #include "zebra/zebra_errors.h" @@ -375,9 +374,6 @@ int main(int argc, char **argv) zrouter.master = frr_init(); - /* Initialize pthread library */ - frr_pthread_init(); - /* Zebra related initialize. */ zebra_router_init(); zserv_init();