From: Arran Cudbard-Bell Date: Thu, 5 Jul 2018 02:00:01 +0000 (-0400) Subject: try and defer the exit to give us enough time to signal we're going down X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=abd178026250c13e6f3d288a7491349cbdaead4e;p=thirdparty%2Ffreeradius-server.git try and defer the exit to give us enough time to signal we're going down --- diff --git a/src/modules/rlm_sigtran/event.c b/src/modules/rlm_sigtran/event.c index e124d860fe5..fbae19a1ca0 100644 --- a/src/modules/rlm_sigtran/event.c +++ b/src/modules/rlm_sigtran/event.c @@ -481,7 +481,22 @@ static void *sigtran_event_loop(UNUSED void *instance) /* * The main event loop. */ - while (!do_exit) osmo_select_main(0); + while (true) { + osmo_select_main(0); + if (do_exit) { + fd_set readset, writeset, exceptset; + int high_fd; + + FD_ZERO(&readset); + FD_ZERO(&writeset); + FD_ZERO(&exceptset); + + high_fd = osmo_fd_fill_fds(&readset, &writeset, &exceptset); + if (high_fd == 0) break; + + DEBUG3("osmocom thread - Deferring exit, waiting for fd %i", high_fd); + } + } talloc_free(ctx); /* Also frees ctrl pipe ofd (which closes ctrl_pipe[1]) */