From 1a4aaf1c31682650f21a13d0ca2805f916bd010d Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Sat, 27 Nov 2021 10:30:03 -0800 Subject: session: mark first listener segment as protected Avoid constantly re-mapping a listener's first segment when all its sessions are closed. Type: improvement Signed-off-by: Florin Coras Change-Id: Iea7033fb70f4cf9e4408d542b7c0ff2b0c5c2f92 --- src/vnet/session/application_worker.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/vnet') diff --git a/src/vnet/session/application_worker.c b/src/vnet/session/application_worker.c index be8a9e86bd5..54377604803 100644 --- a/src/vnet/session/application_worker.c +++ b/src/vnet/session/application_worker.c @@ -184,6 +184,9 @@ app_worker_init_listener (app_worker_t * app_wrk, session_t * ls) if (!(sm = app_worker_alloc_segment_manager (app_wrk))) return SESSION_E_ALLOC; + /* Once the first segment is mapped, don't remove it until unlisten */ + sm->first_is_protected = 1; + /* Keep track of the segment manager for the listener or this worker */ hash_set (app_wrk->listeners_table, listen_session_get_handle (ls), segment_manager_index (sm)); @@ -274,6 +277,7 @@ app_worker_stop_listen_session (app_worker_t * app_wrk, session_t * ls) sm = segment_manager_get (*sm_indexp); if (sm) { + sm->first_is_protected = 0; segment_manager_app_detach (sm); if (!segment_manager_has_fifos (sm)) { -- cgit 1.2.3-korg