diff options
author | Matthew Smith <mgsmith@netgate.com> | 2024-05-24 19:53:55 +0000 |
---|---|---|
committer | Dave Wallace <dwallacelf@gmail.com> | 2024-11-27 03:06:33 +0000 |
commit | 41ac8ee88f992fe845aed259557eaa7ec05f0ee0 (patch) | |
tree | 1d93a5591c93e115da8609264066142937b0e29c /src/vpp-api | |
parent | ad005c2a8bcf2122f6426683802a6cd91dd1e1fe (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.c | 3 |
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; |