vlib api: move wrkr rpc flushing to vlib
[vpp.git] / src / vlib / threads.c
index 7e6ac25..b675b88 100644 (file)
@@ -1586,6 +1586,19 @@ vlib_worker_wait_one_loop (void)
   return;
 }
 
+void
+vlib_worker_flush_pending_rpc_requests (vlib_main_t *vm)
+{
+  vlib_main_t *vm_global = vlib_get_first_main ();
+
+  ASSERT (vm != vm_global);
+
+  clib_spinlock_lock_if_init (&vm_global->pending_rpc_lock);
+  vec_append (vm_global->pending_rpc_requests, vm->pending_rpc_requests);
+  vec_reset_length (vm->pending_rpc_requests);
+  clib_spinlock_unlock_if_init (&vm_global->pending_rpc_lock);
+}
+
 void
 vlib_worker_thread_fn (void *arg)
 {