X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvlib%2Funix%2Fmain.c;h=7e868f99cc2176599a6bf768127b0fdbf669cc62;hb=0bda0f4b908971c8f16eec9fad176be2b6cbd90a;hp=ed0631ec8718a55241934050834bf025fd2e8b90;hpb=56dd5438b04b869065d8e901c315496bb6777455;p=vpp.git diff --git a/src/vlib/unix/main.c b/src/vlib/unix/main.c index ed0631ec871..7e868f99cc2 100644 --- a/src/vlib/unix/main.c +++ b/src/vlib/unix/main.c @@ -75,7 +75,7 @@ VLIB_INIT_FUNCTION (unix_main_init); static void unix_signal_handler (int signum, siginfo_t * si, ucontext_t * uc) { - uword fatal; + uword fatal = 0; u8 *msg = 0; msg = format (msg, "received signal %U, PC %U", @@ -91,10 +91,9 @@ unix_signal_handler (int signum, siginfo_t * si, ucontext_t * uc) if (unix_main.vlib_main->main_loop_exit_set) { syslog (LOG_ERR | LOG_DAEMON, "received SIGTERM, exiting..."); - - clib_longjmp (&unix_main.vlib_main->main_loop_exit, - VLIB_MAIN_LOOP_EXIT_CLI); + unix_main.vlib_main->main_loop_exit_now = 1; } + break; /* fall through */ case SIGQUIT: case SIGINT: @@ -627,6 +626,7 @@ vlib_unix_main (int argc, char *argv[]) vlib_thread_stack_init (0); __os_thread_index = 0; + vm->thread_index = 0; i = clib_calljmp (thread0, (uword) vm, (void *) (vlib_thread_stacks[0] +