vppinfra: allow handoff to main thread

Type: improvement
Change-Id: If2e907967c9b75997b581ff0c058bd5c15e823f5
Signed-off-by: Damjan Marion <damarion@cisco.com>
diff --git a/src/vlib/main.c b/src/vlib/main.c
index 912f5a5..8b5611a 100644
--- a/src/vlib/main.c
+++ b/src/vlib/main.c
@@ -1773,28 +1773,26 @@
 	}
 
       if (!is_main)
+	vlib_worker_thread_barrier_check ();
+
+      if (PREDICT_FALSE (vm->check_frame_queues + frame_queue_check_counter))
 	{
-	  vlib_worker_thread_barrier_check ();
-	  if (PREDICT_FALSE (vm->check_frame_queues +
-			     frame_queue_check_counter))
+	  u32 processed = 0;
+
+	  if (vm->check_frame_queues)
 	    {
-	      u32 processed = 0;
-
-	      if (vm->check_frame_queues)
-		{
-		  frame_queue_check_counter = 100;
-		  vm->check_frame_queues = 0;
-		}
-
-	      vec_foreach (fqm, tm->frame_queue_mains)
-		processed += vlib_frame_queue_dequeue (vm, fqm);
-
-	      /* No handoff queue work found? */
-	      if (processed)
-		frame_queue_check_counter = 100;
-	      else
-		frame_queue_check_counter--;
+	      frame_queue_check_counter = 100;
+	      vm->check_frame_queues = 0;
 	    }
+
+	  vec_foreach (fqm, tm->frame_queue_mains)
+	    processed += vlib_frame_queue_dequeue (vm, fqm);
+
+	  /* No handoff queue work found? */
+	  if (processed)
+	    frame_queue_check_counter = 100;
+	  else
+	    frame_queue_check_counter--;
 	}
 
       if (PREDICT_FALSE (vec_len (vm->worker_thread_main_loop_callbacks)))