diff options
author | Vadim Yanitskiy <axilirator@gmail.com> | 2018-07-30 02:42:25 +0700 |
---|---|---|
committer | Vadim Yanitskiy <axilirator@gmail.com> | 2018-07-30 02:42:25 +0700 |
commit | 527d934807457f1d5a944fd12658e3403b4de772 (patch) | |
tree | 607e69303829f8ed5056f2c5adb6a6e061b8f29f | |
parent | 6b274b95fc357d9007b77a87d862dace60409a32 (diff) |
hlr.c: move deinitialization code from SIGINT handler
There were a few lines of dead code below the osmo_select_main()
loop, while the actual deinitialization code was a part of SIGINT
handler. Let's reanimate this dead zone by moving the code there
and introducing a global 'loop-breaker' variable.
Change-Id: I0e2d673b420193e2bdc1a92377aca542f3a19229
-rw-r--r-- | src/hlr.c | 16 |
1 files changed, 7 insertions, 9 deletions
@@ -44,6 +44,7 @@ #include "hlr_vty.h" static struct hlr *g_hlr; +static int quit = 0; /* Trigger 'Insert Subscriber Data' messages to all connected GSUP clients. * @@ -523,11 +524,7 @@ static void signal_hdlr(int signal) switch (signal) { case SIGINT: LOGP(DMAIN, LOGL_NOTICE, "Terminating due to SIGINT\n"); - osmo_gsup_server_destroy(g_hlr->gs); - db_close(g_hlr->dbc); - log_fini(); - talloc_report_full(hlr_ctx, stderr); - exit(0); + quit++; break; case SIGUSR1: LOGP(DMAIN, LOGL_DEBUG, "Talloc Report due to SIGUSR1\n"); @@ -621,13 +618,14 @@ int main(int argc, char **argv) } } - while (1) { + while (!quit) osmo_select_main(0); - } + osmo_gsup_server_destroy(g_hlr->gs); db_close(g_hlr->dbc); - log_fini(); - exit(0); + talloc_report_full(hlr_ctx, stderr); + + return 0; } |