From 512223490a247d792c27f3bfe6ffe49e6dfb71fa Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Wed, 1 Jun 2022 14:44:11 -0700 Subject: session: make sure fifos are freed on right thread Type: improvement Signed-off-by: Florin Coras Change-Id: I3c573641bd95fe899823b66f6c59a2525a18d293 --- src/vnet/session/segment_manager.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/vnet/session/segment_manager.c') diff --git a/src/vnet/session/segment_manager.c b/src/vnet/session/segment_manager.c index e72e833f53c..14e4e219996 100644 --- a/src/vnet/session/segment_manager.c +++ b/src/vnet/session/segment_manager.c @@ -856,6 +856,10 @@ segment_manager_dealloc_fifos (svm_fifo_t * rx_fifo, svm_fifo_t * tx_fifo) if (!rx_fifo || !tx_fifo) return; + /* Thread that allocated the fifos must be the one to clean them up */ + ASSERT (rx_fifo->master_thread_index == vlib_get_thread_index () || + rx_fifo->refcnt > 1); + /* It's possible to have no segment manager if the session was removed * as result of a detach. */ if (!(sm = segment_manager_get_if_valid (rx_fifo->segment_manager))) -- cgit 1.2.3-korg