if (vcl_get_worker_index () != ~0)
return 0;
+ /* Use separate heap map entry for worker */
+ clib_mem_set_thread_index ();
+
if (pool_elts (vcm->workers) == vcm->cfg.max_workers)
{
VDBG (0, "max-workers %u limit reached", vcm->cfg.max_workers);
return -1;
}
+svm_msg_q_t *
+vcl_worker_ctrl_mq (vcl_worker_t * wrk)
+{
+ return wrk->ctrl_mq;
+}
+
void
vcl_segment_table_add (u64 segment_handle, u32 svm_segment_index)
{
vcl_cleanup_bapi (void)
{
socket_client_main_t *scm = &socket_client_main;
- api_main_t *am = &api_main;
+ api_main_t *am = vlibapi_get_main ();
am->my_client_index = ~0;
am->my_registration = 0;
return clib_fifo_elts (session->accept_evts_fifo);
if (vcl_session_is_ct (session))
- return svm_fifo_max_dequeue (session->ct_rx_fifo);
+ return svm_fifo_max_dequeue_cons (session->ct_rx_fifo);
- return svm_fifo_max_dequeue (session->rx_fifo);
+ return svm_fifo_max_dequeue_cons (session->rx_fifo);
}
int
if (PREDICT_FALSE (session->session_state & STATE_LISTEN))
{
if (session->tx_fifo)
- return svm_fifo_max_enqueue (session->tx_fifo);
+ return svm_fifo_max_enqueue_prod (session->tx_fifo);
else
return VPPCOM_EBADFD;
}
}
if (vcl_session_is_ct (session))
- return svm_fifo_max_enqueue (session->ct_tx_fifo);
+ return svm_fifo_max_enqueue_prod (session->ct_tx_fifo);
- return svm_fifo_max_enqueue (session->tx_fifo);
+ return svm_fifo_max_enqueue_prod (session->tx_fifo);
}
/*