diff options
author | Florin Coras <fcoras@cisco.com> | 2021-07-20 19:08:12 -0700 |
---|---|---|
committer | Dave Barach <openvpp@barachs.net> | 2021-07-21 23:41:16 +0000 |
commit | c941fcbc783bc83461422a3f975d24a5c0ef6a77 (patch) | |
tree | 910d9df792ad42bba8086054454a6efe37b91dff /src/vnet/session | |
parent | e71aeab3926485ee42d185483f8fe5bffe4693bf (diff) |
session: fix unlisten rpc barrier release
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I9301fbbcd611033b4b6ad5313edbc66840f5bb3a
Diffstat (limited to 'src/vnet/session')
-rw-r--r-- | src/vnet/session/session_node.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/vnet/session/session_node.c b/src/vnet/session/session_node.c index 8817b08f3d2..b8b5ce2d8de 100644 --- a/src/vnet/session/session_node.c +++ b/src/vnet/session/session_node.c @@ -401,8 +401,6 @@ session_mq_unlisten_rpc (session_unlisten_msg_t *mp) sh = mp->handle; context = mp->context; - vlib_worker_thread_barrier_sync (vm); - app = application_lookup (mp->client_index); if (!app) return; @@ -411,15 +409,18 @@ session_mq_unlisten_rpc (session_unlisten_msg_t *mp) a->app_index = app->app_index; a->handle = sh; a->wrk_map_index = mp->wrk_index; + + vlib_worker_thread_barrier_sync (vm); + if ((rv = vnet_unlisten (a))) clib_warning ("unlisten returned: %d", rv); + vlib_worker_thread_barrier_release (vm); + app_wrk = application_get_worker (app, a->wrk_map_index); if (!app_wrk) return; - vlib_worker_thread_barrier_release (vm); - mq_send_unlisten_reply (app_wrk, sh, context, rv); clib_mem_free (mp); } |