vlib: fix gdb_show_traces()

When using gdb_show_traces() in debug mode, don't assert if workers are
not parked, as it is typically called from gdb.

Type: fix

Change-Id: Iabf175d96dc152da4d1abfbce9ccc9020d0b5d61
Signed-off-by: Benoît Ganne <bganne@cisco.com>
diff --git a/src/vlib/threads.h b/src/vlib/threads.h
index ac0c1d5..c671aa7 100644
--- a/src/vlib/threads.h
+++ b/src/vlib/threads.h
@@ -200,7 +200,7 @@
 }
 
 always_inline int
-__foreach_vlib_main_helper (vlib_main_t *ii, vlib_main_t **p)
+__foreach_vlib_main_helper (vlib_main_t *ii, vlib_main_t **p, int checks)
 {
   vlib_main_t *vm;
   u32 index = ii - (vlib_main_t *) 0;
@@ -209,15 +209,17 @@
     return 0;
 
   *p = vm = vlib_global_main.vlib_mains[index];
-  ASSERT (index == 0 || vm->parked_at_barrier == 1);
+  ASSERT (!checks || index == 0 || vm->parked_at_barrier == 1);
   return 1;
 }
 
-#define foreach_vlib_main()                                                   \
+#define foreach_vlib_main__(checks)                                           \
   for (vlib_main_t *ii = 0, *this_vlib_main;                                  \
-       __foreach_vlib_main_helper (ii, &this_vlib_main); ii++)                \
+       __foreach_vlib_main_helper (ii, &this_vlib_main, checks); ii++)        \
     if (this_vlib_main)
 
+#define foreach_vlib_main() foreach_vlib_main__ (1)
+
 #define foreach_sched_policy_posix                                            \
   _ (SCHED_OTHER, OTHER, "other")                                             \
   _ (SCHED_FIFO, FIFO, "fifo")                                                \