This commit addresses an issue related to the cleanup of the multiprocess channel. Previously, when closing the channel, there was a risk of losing trailing messages. This issue was particularly noticeable when broadcast message from primary to secondary processes was sent while a secondary process was closing it's mp channel. In this fix, we delete mp socket file before stopping mp receive thread.
Fixes: e7885281ded1 ("ipc: stop mp control thread on cleanup") Cc: sta...@dpdk.org Signed-off-by: Artemy Kovalyov <artem...@nvidia.com> --- lib/eal/common/eal_common_proc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/eal/common/eal_common_proc.c b/lib/eal/common/eal_common_proc.c index 728815c..d34fdda 100644 --- a/lib/eal/common/eal_common_proc.c +++ b/lib/eal/common/eal_common_proc.c @@ -593,7 +593,7 @@ enum async_action { } static void -close_socket_fd(int fd) +remove_socket_fd(int fd) { char path[PATH_MAX]; @@ -672,9 +672,9 @@ enum async_action { if (fd < 0) return; + remove_socket_fd(fd); pthread_cancel((pthread_t)mp_handle_tid.opaque_id); rte_thread_join(mp_handle_tid, NULL); - close_socket_fd(fd); } /** -- 1.8.3.1