summaryrefslogtreecommitdiffstats
path: root/src/vpp-api
diff options
context:
space:
mode:
authorMatthew Smith <mgsmith@netgate.com>2024-05-24 19:53:55 +0000
committerDave Wallace <dwallacelf@gmail.com>2024-11-27 03:06:33 +0000
commit41ac8ee88f992fe845aed259557eaa7ec05f0ee0 (patch)
tree1d93a5591c93e115da8609264066142937b0e29c /src/vpp-api
parentad005c2a8bcf2122f6426683802a6cd91dd1e1fe (diff)
vapi: only wait if queue is empty
Type: fix Fixes: 4b9935cd54 In vapi_wait(), check that the queue is empty before waiting. The condvar is only signaled on addition of the first message. pthread_cond_wait() will block approximately forever if there are already messages in the queue. Change-Id: Ic52befe443509f3c53aa9a872ba62bb05aaac25e Signed-off-by: Matthew Smith <mgsmith@netgate.com>
Diffstat (limited to 'src/vpp-api')
-rw-r--r--src/vpp-api/vapi/vapi.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/vpp-api/vapi/vapi.c b/src/vpp-api/vapi/vapi.c
index 61801fc3726..c818ab0bbec 100644
--- a/src/vpp-api/vapi/vapi.c
+++ b/src/vpp-api/vapi/vapi.c
@@ -1627,7 +1627,8 @@ vapi_wait (vapi_ctx_t ctx)
return VAPI_ENOTSUP;
svm_queue_lock (ctx->vl_input_queue);
- svm_queue_wait (ctx->vl_input_queue);
+ if (ctx->vl_input_queue->cursize == 0)
+ svm_queue_wait (ctx->vl_input_queue);
svm_queue_unlock (ctx->vl_input_queue);
return VAPI_OK;