diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2021-06-04 16:20:12 +0200 |
---|---|---|
committer | neels <nhofmeyr@sysmocom.de> | 2021-06-23 23:45:52 +0000 |
commit | 2644cd2d950679a537fc3a1cf37bceed63507e8f (patch) | |
tree | 91a824ebd3c566376833f55c5ca4199c55f160eb | |
parent | e87f20f621a9c7dbe677da42264a75c31397cbf1 (diff) |
use osmo_select_shutdown to get rid of SIGTERM sleep
Change-Id: I9a4a629805c49240b8be412e9def298cdf5bc996
-rw-r--r-- | src/osmo-bsc/osmo_bsc_main.c | 8 |
1 files 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); } |