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>
This commit is contained in:
parent
ad005c2a8b
commit
41ac8ee88f
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user