From 2644cd2d950679a537fc3a1cf37bceed63507e8f Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Fri, 4 Jun 2021 16:20:12 +0200 Subject: use osmo_select_shutdown to get rid of SIGTERM sleep Change-Id: I9a4a629805c49240b8be412e9def298cdf5bc996 --- src/osmo-bsc/osmo_bsc_main.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 14475ff7e..2a6c50183 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -697,10 +697,12 @@ static void signal_handler(int signum) switch (signum) { case SIGINT: case SIGTERM: + /* If SIGTERM was already sent before, just terminate immediately. */ + if (osmo_select_shutdown_requested()) + exit(-1); bsc_shutdown_net(bsc_gsmnet); osmo_signal_dispatch(SS_L_GLOBAL, S_L_GLOBAL_SHUTDOWN, NULL); - sleep(3); - exit(0); + osmo_select_shutdown_request(); break; case SIGABRT: /* in case of abort, we want to obtain a talloc report and @@ -1033,7 +1035,7 @@ int main(int argc, char **argv) } } - while (1) { + while (!osmo_select_shutdown_done()) { osmo_select_main_ctx(0); } -- cgit v1.2.3