From: Jaroslav Kysela Date: Thu, 7 Apr 2016 09:44:48 +0000 (+0200) Subject: idnode: delay save thread creation X-Git-Tag: v4.2.1~709 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=16817991eb8eddf7f24e397f395dac55fb198055;p=thirdparty%2Ftvheadend.git idnode: delay save thread creation --- diff --git a/src/idnode.c b/src/idnode.c index d6902dd01..cf8f67fd4 100644 --- a/src/idnode.c +++ b/src/idnode.c @@ -1925,14 +1925,18 @@ save_thread ( void *aux ) * *************************************************************************/ void -idnode_init(void) +idnode_boot(void) { RB_INIT(&idnodes); RB_INIT(&idclasses); RB_INIT(&idrootclasses); TAILQ_INIT(&idnodes_save); - tvh_cond_init(&save_cond); +} + +void +idnode_init(void) +{ atomic_set(&save_running, 1); tvhthread_create(&save_tid, NULL, save_thread, NULL, "save"); } diff --git a/src/idnode.h b/src/idnode.h index d0481e3cf..38e85cea1 100644 --- a/src/idnode.h +++ b/src/idnode.h @@ -192,6 +192,7 @@ typedef LIST_HEAD(,idnode_filter_ele) idnode_filter_t; extern idnode_t tvhlog_conf; extern const idclass_t tvhlog_conf_class; +void idnode_boot(void); void idnode_init(void); void idnode_done(void); diff --git a/src/main.c b/src/main.c index 4b794e009..0248a716b 100644 --- a/src/main.c +++ b/src/main.c @@ -1054,7 +1054,7 @@ main(int argc, char **argv) } uuid_init(); - idnode_init(); + idnode_boot(); config_boot(opt_config, gid, uid); tcp_server_preinit(opt_ipv6); http_server_init(opt_bindaddr); // bind to ports only @@ -1133,6 +1133,7 @@ main(int argc, char **argv) /* Initialise configuration */ notify_init(); spawn_init(); + idnode_init(); config_init(opt_nobackup == 0); /* Memoryinfo */