diff --git a/sources/instance.c b/sources/instance.c index 39358d0f..0a44d5ec 100644 --- a/sources/instance.c +++ b/sources/instance.c @@ -71,6 +71,7 @@ void od_instance_free(od_instance_t *instance) od_pid_unlink(&instance->pid, instance->scheme.pid_file); od_scheme_free(&instance->scheme); od_logger_close(&instance->logger); + machinarium_free(); } static inline void @@ -131,6 +132,9 @@ int od_instance_main(od_instance_t *instance, int argc, char **argv) od_pid_init(&instance->pid); } + /* init machinarium machinery */ + machinarium_init(); + /* reopen log file after config parsing */ if (instance->scheme.log_file) { rc = od_logger_open(&instance->logger, instance->scheme.log_file); diff --git a/sources/main.c b/sources/main.c index 25012323..09b36829 100644 --- a/sources/main.c +++ b/sources/main.c @@ -29,7 +29,6 @@ int main(int argc, char *argv[]) { - machinarium_init(); od_instance_t odissey; od_instance_init(&odissey); int rc = od_instance_main(&odissey, argc, argv); @@ -39,6 +38,5 @@ int main(int argc, char *argv[]) rc = EXIT_SUCCESS; } od_instance_free(&odissey); - machinarium_free(); return rc; }