diff options
author | Florin Coras <fcoras@cisco.com> | 2020-04-30 02:59:55 +0000 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2020-04-30 10:18:54 +0000 |
commit | dc0ded7dd7a6b8ee68df25cd56666de804e55e64 (patch) | |
tree | 69a62b8fe51d33e8b8b0a84b65904e09b7d832d7 /src/vcl/vppcom.c | |
parent | 690ce8672c090709924b924af1e49ffc38d8f00c (diff) |
vcl: disconnect both flavors of bapi transport on destroy
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I6697296b45c5816a31535b0cf44b8e726292b8bb
Diffstat (limited to 'src/vcl/vppcom.c')
-rw-r--r-- | src/vcl/vppcom.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/vcl/vppcom.c b/src/vcl/vppcom.c index 0382af45544..38b85bede3b 100644 --- a/src/vcl/vppcom.c +++ b/src/vcl/vppcom.c @@ -1222,8 +1222,8 @@ vppcom_app_create (char *app_name) void vppcom_app_destroy (void) { + vcl_worker_t *wrk, *current_wrk; struct dlmallinfo mi; - vcl_worker_t *wrk; mspace heap; if (!pool_elts (vcm->workers)) @@ -1231,16 +1231,19 @@ vppcom_app_destroy (void) vcl_evt (VCL_EVT_DETACH, vcm); - vcl_send_app_detach (vcl_worker_get_current ()); + current_wrk = vcl_worker_get_current (); /* *INDENT-OFF* */ pool_foreach (wrk, vcm->workers, ({ - if (pool_elts (vcm->workers) == 1) - vl_client_disconnect_from_vlib (); - vcl_worker_cleanup (wrk, 0 /* notify vpp */ ); + if (current_wrk != wrk) + vcl_worker_cleanup (wrk, 0 /* notify vpp */ ); })); /* *INDENT-ON* */ + vcl_send_app_detach (current_wrk); + vppcom_disconnect_from_vpp (); + vcl_worker_cleanup (current_wrk, 0 /* notify vpp */ ); + vcl_elog_stop (vcm); /* |