From 63d3ac6789740d58884aa4f7c91a96f592ae79d7 Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Fri, 29 Mar 2019 08:29:25 -0700 Subject: vls: add pthread check on vls_attr Change-Id: I455d108dfe52d45d040167fecb37b33e9d630c3c Signed-off-by: Florin Coras --- src/vcl/vcl_locked.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/vcl/vcl_locked.c') diff --git a/src/vcl/vcl_locked.c b/src/vcl/vcl_locked.c index fb19b5df03f..55391912b89 100644 --- a/src/vcl/vcl_locked.c +++ b/src/vcl/vcl_locked.c @@ -468,7 +468,7 @@ vls_mt_rel_locks (int locks_acq) #define vls_mt_guard(_vls, _op) \ int _locks_acq = 0; \ - if (PREDICT_FALSE (vcl_get_worker_index () == ~0)); \ + if (PREDICT_FALSE (vcl_get_worker_index () == ~0)) \ vls_mt_add (); \ if (PREDICT_FALSE (vlsl->vls_mt_n_threads > 1)) \ vls_mt_acq_locks (_vls, _op, &_locks_acq); \ @@ -562,6 +562,9 @@ vls_attr (vls_handle_t vlsh, uint32_t op, void *buffer, uint32_t * buflen) vcl_locked_session_t *vls; int rv; + if (PREDICT_FALSE (vcl_get_worker_index () == ~0)) + vls_mt_add (); + if (!(vls = vls_get_w_dlock (vlsh))) return VPPCOM_EBADFD; rv = vppcom_session_attr (vls_to_sh_tu (vls), op, buffer, buflen); @@ -735,6 +738,9 @@ vls_epoll_create (void) vcl_session_handle_t sh; vls_handle_t vlsh; + if (PREDICT_FALSE (vcl_get_worker_index () == ~0)) + vls_mt_add (); + sh = vppcom_epoll_create (); if (sh == INVALID_SESSION_ID) return VLS_INVALID_HANDLE; -- cgit 1.2.3-korg