Thread_index for thread0 in vlib_global_main not initialised
[vpp.git] / src / vlib / unix / main.c
index 3a92b2e..7e868f9 100644 (file)
@@ -60,6 +60,7 @@ char *vlib_default_runtime_dir __attribute__ ((weak));
 char *vlib_default_runtime_dir = "vlib";
 
 unix_main_t unix_main;
+clib_file_main_t file_main;
 
 static clib_error_t *
 unix_main_init (vlib_main_t * vm)
@@ -74,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",
@@ -90,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:
@@ -626,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] +