hash_unset (old_wrk->listeners_table, listen_session_get_handle (s));
if (session_transport_service_type (s) == TRANSPORT_SERVICE_CL
&& s->rx_fifo)
- segment_manager_dealloc_fifos (s->rx_fifo->segment_index, s->rx_fifo,
- s->tx_fifo);
+ segment_manager_dealloc_fifos (s->rx_fifo, s->tx_fifo);
app = application_get (old_wrk->app_index);
if (!app)
ls->tx_fifo->segment_manager = sm_index;
ls->rx_fifo->segment_index = seg_index;
ls->tx_fifo->segment_index = seg_index;
- ls->svm_segment_index = seg_index;
segment_handle = segment_manager_segment_handle (sm, seg);
if ((rv = app_worker_add_segment_notify (server_wrk, segment_handle)))
s->rx_fifo = rx_fifo;
s->tx_fifo = tx_fifo;
- s->svm_segment_index = fifo_segment_index;
return 0;
}
s->tx_fifo->cursize = txf->cursize;
}
- segment_manager_dealloc_fifos (rxf->segment_index, rxf, txf);
+ segment_manager_dealloc_fifos (rxf, txf);
return 0;
}
}
void
-segment_manager_dealloc_fifos (u32 segment_index, svm_fifo_t * rx_fifo,
- svm_fifo_t * tx_fifo)
+segment_manager_dealloc_fifos (svm_fifo_t * rx_fifo, svm_fifo_t * tx_fifo)
{
svm_fifo_segment_private_t *fifo_segment;
segment_manager_t *sm;
+ u32 segment_index;
if (!rx_fifo || !tx_fifo)
return;
if (!(sm = segment_manager_get_if_valid (rx_fifo->segment_manager)))
return;
+ segment_index = rx_fifo->segment_index;
fifo_segment = segment_manager_get_segment_w_lock (sm, segment_index);
svm_fifo_segment_free_fifo (fifo_segment, rx_fifo,
FIFO_SEGMENT_RX_FREELIST);
u32 rx_fifo_size, u32 tx_fifo_size,
svm_fifo_t ** rx_fifo,
svm_fifo_t ** tx_fifo);
-void segment_manager_dealloc_fifos (u32 segment_index, svm_fifo_t * rx_fifo,
+void segment_manager_dealloc_fifos (svm_fifo_t * rx_fifo,
svm_fifo_t * tx_fifo);
u32 segment_manager_evt_q_expected_size (u32 q_size);
svm_msg_q_t *segment_manager_alloc_queue (svm_fifo_segment_private_t * fs,
void
session_free_w_fifos (session_t * s)
{
- segment_manager_dealloc_fifos (s->svm_segment_index, s->rx_fifo,
- s->tx_fifo);
+ segment_manager_dealloc_fifos (s->rx_fifo, s->tx_fifo);
session_free (s);
}