diff options
author | Florin Coras <fcoras@cisco.com> | 2024-02-01 20:46:15 -0800 |
---|---|---|
committer | Dave Barach <vpp@barachs.net> | 2024-02-02 14:44:26 +0000 |
commit | 4cadd3b15b54823ac35a235357a7893a74c6c1f7 (patch) | |
tree | ab7e7ef2203409fb13ee0fab2c5936d74c8342a8 /src/vlib/threads.c | |
parent | d7f17a23931a64badc95d57a332c2700e2f34118 (diff) |
vlib api: move wrkr rpc flushing to vlib
Move vlib worker rpc flushing to main worker from memclnt api into vlib.
RPCs are no longer delivered via binary api queues
Type: refactor
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I5b8761a57d1f4a1f2220e860cfb2e6b980f46f6d
Diffstat (limited to 'src/vlib/threads.c')
-rw-r--r-- | src/vlib/threads.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/vlib/threads.c b/src/vlib/threads.c index 7e6ac25f109..b675b8819d2 100644 --- a/src/vlib/threads.c +++ b/src/vlib/threads.c @@ -1587,6 +1587,19 @@ vlib_worker_wait_one_loop (void) } 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) { vlib_global_main_t *vgm = vlib_get_global_main (); |